使用 Xslt 将 XML 转换为 XML

Posted

技术标签:

【中文标题】使用 Xslt 将 XML 转换为 XML【英文标题】:XML to XML trasformation using Xslt 【发布时间】:2016-08-24 03:22:38 【问题描述】:

我是 xslt 和 Xpath 的新手。我需要使用 xslt 将 xml 转换为另一个 xml 文件。所以我需要得到Name element.我正在使用xpath。但是当我运行我的xslt时得到以下错误。我错过了什么或出了什么问题?

错误:net.sf.saxon.s9api.SaxonApiException: org.xml.sax.SAXParseException;行号:22;列号:22;元素“arr:string”的前缀“arr”未绑定。

输入文件.XML

<Accounts>
<Account>
    <Name></Name>
</Account>
<Accounts>

需要得到&lt;Name&gt;元素

我的 xpath 是(这不是完整的 xslt 文件。仅包含获取名称元素代码)

         <arr:string>
            <xsl:value-of select="/Accounts/Account"></xsl:value-of>
         </arr:string>

输出是-:

            <qqq:Fields>
               <arr:string>Name</arr:string>
               <arr:string>XXX</arr:string>
               <arr:string>xxxxx</arr:string>
               <arr:string>xxxxx</arr:string>
            </qqq:Fields>

【问题讨论】:

您的问题不清楚,但错误信息是:如果不先将arr: 前缀绑定到命名空间,则无法使用&lt;arr:string&gt;。你有一个你的最终输出应该是什么样子的例子吗? --附言请查看:minimal reproducible example 感谢您的快速响应。是的,我没有使用 【参考方案1】:

您需要该命名空间的一些声明。

喜欢:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:arr="http://myarr.org">

或者:

<arr:string xmlns:arr="http://myarr.org">
    <xsl:value-of select="/Accounts/Account"/>
</arr:string>

尝试检查:http://www.w3schools.com/xml/xml_namespaces.asp

【讨论】:

以上是关于使用 Xslt 将 XML 转换为 XML的主要内容,如果未能解决你的问题,请参考以下文章

使用 XSLT 将 XML 转换为 XML(添加、删除、修改)

使用 XSLT 将 XML 转换为 XML 删除前导空格和零

使用 XSLT 将 XML 元素转换为 XML 属性

如何使用 XSLT 将 JSON 转换为 XML?

使用 XSLT 将 XML 转换为 JSON

使用 XSLT 将 CSV 文件转换为 XML