我想知道是否有人可以向我指出用于解析 xml 字符串的核心(非客户端)JavaScript 解决方案。例如,将其变成一个我可以从中提取属性的对象。甚至是一个数组。
我进行了广泛的搜索,我看到的所有解决方案都是使用特定浏览器 DOM 的客户端解决方案。请注意,我正在使用 JavaScript 进行编程,但这不是与 DOM 相关的问题。这是服务器端计算。
例如,我有这个字符串:
<IndustryTerm count="2" relevance="0.553">food system</IndustryTerm><Person count="2" relevance="0.586">Alexandra Spieldoch</Person><Event count="1">Environmental Issue</Event><IndustryTerm count="1" relevance="0.154">rural finance</IndustryTerm><IndustryTerm count="1" relevance="0.335">food security</IndustryTerm><IndustryTerm count="1" relevance="0.280">e-consultation</IndustryTerm><IndustryTerm count="1" relevance="0.154">high-level food security dialogues</IndustryTerm><IndustryTerm count="1" relevance="0.154">food markets</IndustryTerm><Position count="1" relevance="0.335">representative</Position><SocialTags><SocialTag importance="2">Sociology<originalValue>Sociology</originalValue></SocialTag><SocialTag importance="2">Food security<originalValue>Food security</originalValue></SocialTag><SocialTag importance="1">Food politics<originalValue>Food politics</originalValue></SocialTag><SocialTag importance="1">Gender<originalValue>Gender</originalValue></SocialTag><SocialTag importance="1">Biology<originalValue>Biology</originalValue></SocialTag></SocialTags>
我的目标是找到所有相关性和重要性值,以及标签之间的关联值。更具体地说,在本例中:
<IndustryTerm count="1" relevance="0.154">food markets</IndustryTerm>
我想知道标签名称 (IndustryTerm)、相关性 (0.154) 以及打开标签和关闭标签之间的值(食品市场)。
我一直在摆弄正则表达式,但还没能“击中要害”,只是想知道是否有什么东西。
同样,这与客户端 JavaScript 或浏览器无关,但确实需要采用标准的核心 JavaScript。
道格
最佳答案
核心 Javascript 内置了 XML 方法,这是您正在寻找的吗?
https://developer.mozilla.org/En/E4X/Processing_XML_with_E4X
var person = <person>
<name>Bob Smith</name>
<likes>
<os>Linux</os>
<browser>Firefox</browser>
<language>JavaScript</language>
<language>Python</language>
</likes>
</person>;
alert(person.name); // Bob Smith
alert(person['name']); // Bob Smith
alert(person.likes.browser); // Firefox
alert(person['likes'].browser); // Firefox
该链接包含使用列表、属性等的示例。
关于javascript - 如何在 JavaScript 中解析 xml 字符串? (与客户端无关,与浏览器相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10989604/