E4X按文字内容过滤?

时间:2009-05-28 19:27:28

标签: javascript filter e4x

我正在尝试使用E4X在JavaScript中过滤一些XML,并且有一些特定的需求。鉴于以下内容:

    var xml = <body>
      <div>
        <p>This is some text that I have.</p>
      </div>
    </div>;

我想在文档中搜索以“这是一些文字”开头的段落。

目前,我可以通过以下内容获取该段落:

xml..div(p.text().toString().indexOf("This is some text") === 0)

但是,“真正的”XML要复杂得多(想想:常规网页)。无法保证会有一个div直接在问题中为段落提供帮助。在相同的父元素中,在相关段落之前/之后可能有其他段落。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

使用双点运算符搜索所有&lt; p&gt;任何嵌套调平的节点,然后过滤掉节点,只包括以您想要的字符串开头的节点。你很亲密,你只需要摆脱&lt; div&gt;因为,如你所说,&lt; div&gt;可能不存在。:

xml..p.( text().toString().indexOf("This is some text") == 0 );