【问题标题】:copy XML using XSLT into JSON使用 XSLT 将 XML 复制到 JSON
【发布时间】:2010-11-27 09:07:19
【问题描述】:

我想将使用 XSLT 的 XML 复制到 JSON 中。

JSON 结果如下所示:

 callback( {"xml":"
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
 ...
 </root>
 "})

到目前为止我的 XSLT:

 <xsl:template match="/">
   <xsl:text>callback( {"xml":"</xsl:text>
    <xsl:copy-of  select="*"/>
   <xsl:text>"} )</xsl:text>
 </xsl:template>

任何人都知道除了引号之外还有什么我必须替换以及如何替换?我想在 Javascript 中加载和解析 XML 文件?

非常感谢,
拉尔夫

【问题讨论】:

    标签: javascript xml json xslt


    【解决方案1】:

    使用 JavaScript 而不是 XSLT 更容易完成这项任务,只是因为结尾语法不附属于 XML,而且您不太可能转换任何超出语法的内容。

    您只是在转换语法,没有任何与数据相关的内容,那么它只是语法翻译。这不是 XSLT 的设计目的。每种 XML 技术都共享一个通用语法,因此在将数据从一种 XML 语法转换为另一种时,语法转换不是问题。此外,这是一项简单的任务。

    您需要以下内容: 一个字符串字面量,表示你的JS代码的数组或对象字面量索引在数据元素之前,数据元素使用document.getElementsByTagName数组的innerHTML,然后是JS位完成数组或对象字面量索引代码。使用循环遍历 XML 中的每个元素,并将其构建为字符串文字,该字符串文字表示构建 JSON 对象的每个索引所需的 JS 代码。然后一旦完成,将适当的开头和结尾粘贴在动态创建的内容上以完成语法。这应该是一个非常快速的过程。

    【讨论】:

    • 我认为没有其他选择。 REST 请求的响应是 xml,但我需要 json 格式的响应。因此,首先我编写了 XSLT,仅将几个元素转换为 json,但我认为将整个 xml 作为一个对象复制到 json 中会更容易。然后我可以将xml加载到javascript中并解析它。
    【解决方案2】:

    您可以使用开源的 xml2json XSLT 代码。如果您觉得当前代码的功能不足,也可以自己编写。从我所见,我认为以下项目中的代码不支持属性(如果您可以定义它们应该如何出现在您的 json 中)。

    http://code.google.com/p/xml2json-xslt/ 
    

    【讨论】:

    • 我查看了这个项目,它将 xml 转换为 json,但后来我不得不将 json 对象转换回 xml。所以我认为将整个xml元素复制到json中更容易。回到客户端(浏览器),然后我可以使用 xpath 解析 xml 元素。
    猜你喜欢
    • 2014-12-17
    • 2021-03-29
    • 2020-01-26
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    相关资源
    最近更新 更多