2011-09-13 55 views
2

我在Java中的節點列表和這個XML文件,(只是它的一部分)XPath表達式驗證的NodeList

,如果我有

<Book title="aaa" author="bbb" price="12" year="2011" /> 

我可以使用XPath表達式來看看例如:

local-name(.) = 'Book' and @title local-name(.) = 'Book' and @title 

如果XPath表達式執行的結果是真的......執行某些操作,否則執行其他操作。 在這種情況下,我直接在Node上構建表達式,這沒關係。

在NodeList的情況下,我該怎麼做同樣的任務? 我想看看NodeList(Java中的org.w3c.NodeList)是否有一些節點,但是使用XPath表達式。

感謝 盧卡

+0

好問題,+1。是的,通常可以使用XPath從給定節點集中選擇節點,使用包含節點集的變量或另一個選擇此節點集的節點的XPath表達式。 –

回答

1

你也可以遍歷在NodeList節點和您的XPath應用到每個節點。

0

如果節點集合是在可變$v,那麼下面的XPath表達式:

$v[self::Book and @title] 

選擇來自$vBook元件並且還具有屬性名爲title所有節點。

如果節點集合能夠作爲評價特定的XPath表達式的結果來獲得,則可以利用該表達替代$v

yourExpression[self::Book and @title] 

例如,如果節點集合中的問題包括所有節點返回/*/*,那麼從這個節點集合中選擇想要的節點的一個表達式是:

/*/*[self::Book and @title]