1
XML的XPath立即前置兄弟
<root>
<p>nodea text 1</p>
<p>nodea text 2</p>
<nodea>
</nodea>
<p>nodeb text 1</p>
<p>nodeb text 2</p>
<nodeb>
</nodeb>
</root>
我想NODEA或NodeB的第一前置兄弟p標籤(如果有)。例如,對於上面的XML用於各個節點前述兄弟姐妹
NODEA前述兄妹
<p>nodea text 1</p>
<p>nodea text 2</p>
基站前述兄妹
<p>nodeb text 1</p>
<p>nodeb text 2</p>
我已經嘗試下面的xpath但它給我是nodea的前面的p標籤而不是nodeb。
nodeb = xml.find('nodeb')
nodeb.xpath('preceding-sibling::p[not(preceding-sibling::nodea)][1]')
如果在節點之前沒有前面的p標記,那麼它應該返回空列表。例如,對於下面的xml,nodeb中沒有前面的同級p標籤。
<root>
<p>nodea text 1</p>
<nodea>
</nodea>
<nodeb>
</nodeb>
</root>
這將是很好,如果有人也可以解釋爲什麼我的XPath是沒有工作,我應該怎麼記住寫的XPath是什麼時候?
其工作。你可以添加一些解釋我的xpath有什麼問題。 – MA1
@ MA1,我爲你的嘗試添加了一些解釋。 –