【问题标题】:Trouble retrieving inner text from XML node using JavaScript使用 JavaScript 从 XML 节点检索内部文本时遇到问题
【发布时间】:2010-06-07 12:36:25
【问题描述】:

我正在使用 JavaScript 和 jQuery 读取 XML 文档,并且需要从节点内部提取一些文本以保存到数组中。 XML的结构如下:

<C>
  <I>
    <TEXTFORMAT>
      <P>
        <FONT>Here's the text I want</FONT>
      </P>
    </TEXTFORMAT>
  </I>
</C>

到目前为止我尝试过的一切都没有返回,所以我一定是错误地引用了 FONT 标记的内容。

我应该使用什么 XML 路径?

【问题讨论】:

  • $(xml).find('TEXTFORMAT P FONT').text() 不起作用吗?
  • 这确实有效,但是它检索 XML 中每个 FONT 标记的内容,我需要它只检索它当前正在查看的节点的内容。我应该改变什么?
  • ?哎哟。你试过什么?听起来 $("font") 在这种情况下可以正常工作。
  • "当前正在查看的节点的内容"是什么意思? it 是什么,为什么它盯着你的节点?
  • @JackRoscoe - 如果您已经在处理 XML 文档的片段,您也可以使用 jQuery 来处理这些片段,而不是整个文档。所以不是$(myEntireXmlDoc).find(...),而是$(theContentIAmLookingAt).find(...)。此外,如果您已经在处理原始 XML 对象,您应该能够像这样深入到文本:theXmlIAmLookingAt.getElementsByTagName('font')[0].firstChild.nodeValue

标签: javascript jquery xml


【解决方案1】:

这将为您提供FONT 节点的内容数组。

var array = $(xml).find('FONT').map(function() {
    return $(this).text();
}).get();

相关 jQuery 文档:

【讨论】:

    【解决方案2】:
    function parseXml(xml)
    {
        //find every FONT element and store its value
        $(xml).find("FONT").each(function()
        {
            // put this.text() into the array
        });
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 2018-10-31
      • 1970-01-01
      • 2016-09-07
      • 2020-02-18
      相关资源
      最近更新 更多