【问题标题】:XML/XSLT - Unable to pick up multiple nodes from XML documentXML/XSLT - 无法从 XML 文档中选取多个节点
【发布时间】:2014-04-03 09:56:47
【问题描述】:

我是 XSLT 的新手,正在尝试将以下 XML 文件转换为逗号分隔的列表:

<town>Some Town</town>
<city>Some City</city>

使用以下 XSLT 文件:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/">
        <xsl:value-of select="town"/>,
        <xsl:value-of select="city"/>
    </xsl:template> 
</xsl:stylesheet>

使用this online transformer时出现以下错误:

Error:DOMDocument::loadXML() [<a href='domdocument.loadxml'>domdocument.loadxml</a>]: Extra content at the end of the document in Entity, line: 3

虽然,如果我从输入文件中删除 &lt;city&gt;Some City&lt;/city&gt; 元素,那么我的输出会正常工作,我会得到以下信息:

Some Town,

我想在这里实现的是:

Some Town,Some City

我还有一个场景,&lt;city&gt; 元素可能不会出现,并且 XML 文件将只包含一个 &lt;town&gt; - 我的 XSLT 文件在这种情况下是否仍然可以工作?任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: xml csv xslt


    【解决方案1】:

    您应该将您的 xml 文件包含在 root 标记中。

    如果您从输入文件中删除 &lt;city&gt;Some City&lt;/city&gt; 元素,它之所以起作用,是因为它将 &lt;town&gt; 视为根。

    【讨论】:

    • 谢谢@Joel。包含在根标签中已经解决了这个问题。
    猜你喜欢
    • 2012-04-10
    • 2020-04-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多