小编Dim*_*hev的帖子

使用php Xpath更新xml文件

如何使用使用Xpath(php)更新文件?我的文件结构:

<?xml version="1.0" encoding="ISO-8859-1"?>
<PersonList>
  <Person>
    <Name>Sonu Kapoor</Name>
    <Age>24</Age>
    <Gender>M</Gender>
    <PostalCode>54879</PostalCode>
  </Person>
  <Person>
    <Name>Jasmin</Name>
    <Age>28</Age>
    <Gender>F</Gender>
    <PostalCode>78745</PostalCode>
  </Person>
   <Person>
    <Name>Josef</Name>
    <Age>232</Age>
    <Gender>F</Gender>
    <PostalCode>53454</PostalCode>
  </Person>
</PersonList>
Run Code Online (Sandbox Code Playgroud)

我需要更改值Age和Gender,其中name是"Jasmin".我尝试使用谷歌,但没有找到好的:(

php xml xslt xpath

6
推荐指数
1
解决办法
6844
查看次数

带有C#扩展功能的XSLT中的错误消息

尝试在XSLT中实现C#扩展函数时收到以下错误.

不支持具有CLR类型"Char []"的扩展函数参数或返回值.**

码:

<xsl:variable name="stringList">
  <xsl:value-of select="extension:GetList('AAA BBB CCC', ' ')"/>
</xsl:variable> 

<msxsl:script language="C#" implements-prefix="extension">
<![CDATA[

public string[] GetList(string str, char[] delimiter)
{
   ...
   ...
   return str.Split(delimiter, StringSplitOptions.None);
}

]]>
</msxsl:script>
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个错误信息以及如何通过它吗?

编辑:我需要一个解决方案仍然允许我实现拆分功能并使用返回的数组.

谢谢!

c# xslt clr extension-methods

5
推荐指数
1
解决办法
4698
查看次数

将模板应用于变量/序列中的元素

当我使用“apply-templates”并选择一个变量序列时,模板是作用于序列中元素的上下文,还是作用于文档中元素的上下文?

在下面的例子中,它似乎要么做,要么不做,但我不明白为什么。

<root>
<a/>
<b/>
<c><a/></c>
<a/>
</root>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="root">
    <!--this variable give me a sequence of "a" elements-->
    <xsl:variable name="someElementA1" select="//a"/>
    <xsl:variable name="someElementA2">
        <xsl:copy-of select="//a"/>
    </xsl:variable>
    <xsl:for-each select="$someElementA1/a">
        <xsl:element name="test">
            <xsl:text>This is scenario 1: </xsl:text>
            <xsl:apply-templates select="."/>
        </xsl:element>
    </xsl:for-each>
    <xsl:for-each select="$someElementA2/a">
        <xsl:element name="test">
            <xsl:text>This is scenario 2: </xsl:text>
            <xsl:apply-templates select="."/>
        </xsl:element>
    </xsl:for-each>
    <xsl:element name="test">
        <xsl:text>This is scenario 3: </xsl:text>
        <xsl:apply-templates select="$someElementA1"/>
    </xsl:element>
    <xsl:element name="test">
        <xsl:text>This is …
Run Code Online (Sandbox Code Playgroud)

xslt xpath xslt-2.0 xpath-2.0

5
推荐指数
1
解决办法
1963
查看次数

PostgreSQL 8.4 XML,XSLT和XPath可能性/文档

XML,XSLT和XPath上可用的PostgreSQL材料是有限的.有PostgreSQL团队的官方文档,但这些文档只涉及几页内容,我从未相信他们的文档尽可能全面.

在网站上也有一些位和爆炸,但没有太多.

任何人都可以给我任何关于他们如何使用PostgreSQL 8.4中的XML功能,或指向任何隐藏的宝石博客帖子等的例子?

我对xpath()和xslt_process()函数特别感兴趣.

提前致谢!

xml postgresql xslt xpath

5
推荐指数
1
解决办法
1416
查看次数

xsl遍历字母表列表

我需要遍历字母az,并为每一个打印字母,然后放置一些我已经工作的代码,以显示我的数据库中以该字母开头的所有项目.目前,我正在使用选择来检索我显示的所有项目名称的第一个字母.但是,要求是显示所有字母,然后在没有项目的情况下显示"没有要显示的项目".所以,我不能再使用我的选择,它只返回有项目的字母.

我怎么能这样做,没有硬编码每个字母,然后在每个字母后调用我的模板26次?

arrays xslt

5
推荐指数
1
解决办法
2399
查看次数

如何格式化/缩进XSL转换的输出

我想输出一段html代码.但我需要它是漂亮的印刷/缩进.没有使用<xsl:text>&#xa;</xsl:text>和有没有办法做到这一点<xsl:text>&#9;</xsl:text>

我使用了以下行没有任何结果.

<xsl:output method="html" indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

Follwoing是c#代码;

    XslCompiledTransform XSLT = new XslCompiledTransform();
    XSLT.Load(xslPath);

    using (XmlTextWriter writer = new XmlTextWriter(writePath, null))
    {
        if (isTopLevel)
        {
            XSLT.Transform(XMLDocumentForCurrentUser, writer);
        }
        else
        {
            XsltArgumentList xslArg = new XsltArgumentList();
            xslArg.AddParam("MenuIndex", "", menuIndex);
            XSLT.Transform(XMLDocumentForCurrentUser, xslArg, writer);
        }
    }
 // I write the output to file  
//All this works fine, only now I need the HTML to be readable (in the browser's view source or any notepad)
Run Code Online (Sandbox Code Playgroud)

有没有人知道格式化(至少缩进)XSLT输出的方法?

xml xslt serialization pretty-print

5
推荐指数
1
解决办法
9101
查看次数

XSL如何根据值而不使用属性来计算节点数?

我做过研究,但是在操作属性时我只找到了解决方案.

我最近开始研究XSL.我想用它来将我的xml文件转换为html文件.我想要提取的数据应该显示有多少节点具有特定值.

XML具有以下结构:

<Tests>
    <Test>
        <TestName> a </TestName>
        <Date> 12.11.10 </Date>
        <Result> Fail </Result>
    </Test>
    <Test>
        <TestName> b </TestName>
        <Date> 13.11.10 </Date>
        <Result> Fail </Result>
    </Test>
    <Test>
        <TestName> c </TestName>
        <Date> 14.11.10 </Date>
        <Result> Pass </Result>
    </Test>
</Tests>
Run Code Online (Sandbox Code Playgroud)

我想要的是:2(失败次数)1(通过次数)

任何人都可以帮我完成这个任务吗?

xml xslt

5
推荐指数
1
解决办法
2万
查看次数

XSLT选择包含特定子字符串的所有节点

我正在尝试编写一个XPath,它将选择包含特定单词的某些节点.在这种情况下,这个词是"洛克伍德".正确的答案是3.这两条路径都给了我3个.

count(//*[contains(./*,'Lockwood')])
count(BusinessLetter/*[contains(../*,'Lockwood')])
Run Code Online (Sandbox Code Playgroud)

但是当我尝试输出每个特定节点的文本时

//*[contains(./*,'Lockwood')][1]
//*[contains(./*,'Lockwood')][2]
//*[contains(./*,'Lockwood')][3]
Run Code Online (Sandbox Code Playgroud)

节点1最终包含所有文本,节点2和3为空白.

有人可以告诉我发生了什么或我做错了什么.

谢谢.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="XPathFunctions.xsl"?>
<BusinessLetter>
 <Head>
  <SendDate>November 29, 2005</SendDate>
  <Recipient>
   <Name Title="Mr.">
    <FirstName>Joshua</FirstName>
    <LastName>Lockwood</LastName>
   </Name>
   <Company>Lockwood &amp; Lockwood</Company>
   <Address>
    <Street>291 Broadway Ave.</Street>
    <City>New York</City>
    <State>NY</State>
    <Zip>10007</Zip>
    <Country>United States</Country>
   </Address>
  </Recipient>
 </Head>
 <Body>
  <List>
   <Heading>Along with this letter, I have enclosed the following items:</Heading>
   <ListItem>two original, execution copies of the Webucator Master Services Agreement</ListItem>
   <ListItem>two original, execution copies of the Webucator Premier Support for Developers Services Description between Lockwood …
Run Code Online (Sandbox Code Playgroud)

xslt xpath

5
推荐指数
1
解决办法
8312
查看次数

如何在一个空格中替换空格序列,但不在XSLT中修剪?

该函数normalize-space删除前导和尾随空格,并用单个空格替换空白字符序列.我怎么能在XSLT 1.0单个空格替换一系列空白字符?例如"..x.y...\n\t..z."(为了便于阅读,用点替换的空格)应该成为".x.y.z.".

xslt xpath xslt-1.0 removing-whitespace

5
推荐指数
2
解决办法
2400
查看次数

Java中的动态XML创建

我试图动态地在Java中创建一个XML文件来显示时间表.我为我的XML文件创建了一个DTD,我有一个我想用来转换XML的XSL文件.我不确切知道如何继续.

我到目前为止所尝试的是点击一个按钮,调用一个Servlet,它生成XML文件内容的字符串(将XML的动态部分插入到String中.我现在有一个包含XML内容的String我现在想使用我服务器上的XSL文件转换XML文件,并在调用Servlet的页面中显示结果(通过AJAX执行此操作).

我不确定我是否在这个方向,也许我甚至不应该从一开始就以String形式创建XML代码.所以我的问题是,我如何从这里继续?如何使用XSL文件转换XML字符串,并将其作为对AJAX调用的响应发送,以便将生成的代码植入页面?或者,如果这不是这样做的,那么如何以不同的方式创建动态XML文件以产生相同的结果?

java xml xslt servlets

5
推荐指数
1
解决办法
7839
查看次数