选择和操作混合节点

时间:2015-09-03 10:27:14

标签: xpath simplexml

我有数以千计的格式错误的html文档,我必须使用php修复格式错误。到目前为止,我对simplexml和xpath做得很好。现在我偶然发现了这个:

<ul>
  Lorem ipsum <strong>dolor sit amet,</strong> consectetur 
  adipiscing elit, <em>sed</em> do eiusmod tempor
  <li>incididunt</li>
  <li>ut</li>
  <li>labo</li>
</ul>

现在Text Lorem ... tempor 属于<ul>之外,而其他一切( incididunt ... labo )应该仍然是列表项。

所以我的想法是选择<ul>的{​​{1}}子节点,包括文本节点。但我可以用xpath做到这一点吗?

1 个答案:

答案 0 :(得分:1)

你可以联合两个xpathes。第一个发现所有不是li节点,第二个 - 文本节点在ul

//ul/*[name() != "li"] | //ul/text()