使用JavaScript从XML节点检索内部文本时出现问题

使用JavaScript从XML节点检索内部文本时出现问题,javascript,jquery,xml,Javascript,Jquery,Xml,我正在使用JavaScript和jQuery阅读一个XML文档,需要从节点中提取一些文本以保存到数组中。XML的结构如下所示: <C> <I> <TEXTFORMAT> <P> <FONT>Here's the text I want</FONT> </P> </TEXTFORMAT> </I> </C> 这

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

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

这是我想要的文本

到目前为止,我尝试的所有操作都没有返回任何结果,因此我一定是错误地引用了字体标记的内容


我应该使用什么XML路径?

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

function parseXml(xml)
{
    //find every FONT element and store its value
    $(xml).find("FONT").each(function()
    {
        // put this.text() into the array
    });

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

相关jQuery文档:

  • .map()
    -
  • .text()
    -
  • .get()
    -
  • .find()
    -

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