gpt4 book ai didi

xml - 将 xml 转换为 JSON 的库,反之亦然

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:23 26 4
gpt4 key购买 nike

我需要将一份 xml 格式的文档转换为 JSON,反之亦然。

我相信这是一个普遍的要求,也许仍然有一个图书馆可以做到这一点。

知道吗?

最佳答案

不是 C#,而是将 JSON 对象转换为 XML 文档的纯 XSLT 2.0 实现:

看看 f:json-document()来自 FXSL 2.x library .

使用此函数可以非常容易地合并 JSON 并将其用作... XML。

例如,可以只写下面的 XPath 表达式:

f:json-document($vstrParam)/Students/*[sex = 'Female']

获取 Students 的所有 child sex = 'Female'

完整示例如下:

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://fxsl.sf.net/"
exclude-result-prefixes="f xs"
>
<xsl:import href="../f/func-json-document.xsl"/>

<xsl:output omit-xml-declaration="yes" indent="yes"/>

<xsl:variable name="vstrParam" as="xs:string">
{

"teacher":{
"name":
"Mr Borat",
"age":
"35",
"Nationality":
"Kazakhstan"
},


"Class":{
"Semester":
"Summer",
"Room":
null,
"Subject":
"Politics",
"Notes":
"We're happy, you happy?"
},

"Students":
{
"Smith":
{"First Name":"Mary","sex":"Female"},
"Brown":
{"First Name":"John","sex":"Male"},
"Jackson":
{"First Name":"Jackie","sex":"Female"}
}
,


"Grades":

{
"Test":
[
{"grade":"A","points":68,"grade":"B","points":25,"grade":"C","points":15},

{"grade":"C","points":2, "grade":"B","points":29, "grade":"A","points":55},

{"grade":"C","points":2, "grade":"A","points":72, "grade":"A","points":65}
]
}


}
</xsl:variable>

<xsl:template match="/">
<xsl:sequence select=
"f:json-document($vstrParam)/Students/*[sex = 'Female']"/>

</xsl:template>
</xsl:stylesheet>

当上述转换应用于任何 XML 文档(忽略)时,会产生正确的结果:

<Smith>
<First_Name>Mary</First_Name>
<sex>Female</sex>
</Smith>
<Jackson>
<First_Name>Jackie</First_Name>
<sex>Female</sex>
</Jackson>

关于xml - 将 xml 转换为 JSON 的库,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com