2015-09-03 46 views
0

我有成千上萬的格式不好的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> 

現在文本的Lorem ... tempor所屬的<ul>之外,而其他一切(incididunt ...拉博)應保持一個列表項。

所以我的想法是選擇子節點<ul>不是<li>包括文本節點。但我可以用xpath來做到這一點嗎?

回答

1

你可以聯合兩個xpathes。第一個發現所有不是li節點,第二個文本節點ul

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

謝謝,它確實是我所需要的。 – loominade

+0

不客氣! – splash58