【发布时间】:2013-06-24 13:47:36
【问题描述】:
我必须显示一个层次结构,我的输入来自像这样的 XML 格式的 Web 服务:
<Nodes>
<Node>
<Data>
<Attribute name="ID">Desktop</Attribute>
<Attribute name="Parent">administrator</Attribute>
</Data>
<Relationship>
<RelatedNodes>
<Node>
<Data>
<Attribute name="ID">administrator</Attribute>>
<Attribute name="Parent">Users</Attribute>
</Data>
<Relationship>
<RelatedNodes>
<Node>
<Data>
<Attribute name="ID">Users</Attribute>
<Attribute name="Parent">C</Attribute>
</Data>
<Relationship>
<RelatedNodes>
<Node>
<Data>
<Attribute name="ID">C</Attribute>
<Attribute name="Parent"/>
</Data>
</Node>
</RelatedNodes>
</Relationship>
</Node>
</RelatedNodes>
</Relationship>
</Node>
</RelatedNodes>
</Relationship>
</Node>
</Nodes>
为了显示它,UI 人员要求我转换为像这样的 JSON:
{
children:[{
"title": "C",
"level": "1",
"children": [
{
"title": "Users",
"level": "2",
"children": [
{
"title": "administrator",
"level": "3",
},
"children": [
{
"title": "Desktop",
"level": "4",
},
]
]
}
]
}]
}
关于如何使用 XSLT 或任何其他转换工具执行此操作的任何想法?
谢谢!
【问题讨论】:
-
只要搜索 SO,有很多方法可以做到,这里是 Javascript:stackoverflow.com/questions/7769829/…
-
您的 XML 在语法上无效(请修复它),并且不清楚它与您的示例 JSON 有何关系。例如
C是什么? -
感谢 Raffian,我找到了很多将 XML 转换为 JSON 的工具,但是所有这些工具都从字面上转换 xml,我的意思是 xml 的每个元素都是 JSON 中的一个元素。这里的问题是我有一个分层的xml结构,我不知道深,所以我需要去到应该是结构中更深的元素的父元素,然后上到最后一个元素。但是我怎么知道如果我不知道结构的深度,则父的路径。
-
这是一个具有 Windows 文件夹结构的示例,因此“C”是根文件夹,示例路径为:C:/Users/administrator/Desktop。 JSON 结构使用“children”数组来表示该元素的子元素。
-
要更正 XML,只需将第 11 行更改为:
administrator