0

我想知道是否有人可以向我指出用于解析 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 或浏览器无关,但确实需要使用标准的 Core JavaScript。

道格

4

2 回答 2

3

Core 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

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

于 2012-06-12T02:17:14.683 回答
0

您也许可以使用 SpiderMonkey 支持的替代语法来解析 XML。我从Firefox nightly builds page中获取了一份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
于 2012-06-12T14:33:52.977 回答