如何在javascript中解析xml字符串?(不是客户端,与浏览器相关)

How to parse an xml string in javascript? (not client-side, browser-related)

本文关键字:客户端 浏览器 javascript 字符串 xml      更新时间:2023-09-26

我想知道是否有人可以指出我一个核心(不是客户端)JavaScript解决方案来解析xml字符串。例如,将其转换为我可以从中提取属性的对象。甚至是一个数组。

我已经搜索了高低,我看到的所有解决方案都是利用特定浏览器 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>

我想知道标签名称(行业术语)、相关性 (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

该链接包含使用列表、属性等的示例。

您可以使用 SpiderMonkey 支持的替代语法来解析 XML。我从 Firefox 每晚构建页面中获取了一份 SpiderMonkey JavaScript Shell,并从西伯利亚的例子中窃取,这行得通:

js> options('allow_xml');
""
js> var person = new XML("<person><name>Bob Smith</name><likes><os>Linux</os><browser>Firefox</browser><language>JavaScript</language><language>Python</language></likes></person>");
js> person.name;
<name>Bob Smith</name>
js> person.name.text()
Bob Smith
js> person.likes.browser.text();
Firefox