2015-10-22 24 views
0

選擇動態標籤的名字,我有三種可能的孩子喜歡這個與XPath

1: 
<root> 
    <child1> 
2: 
<root> 
    <child2> 
3: 
<root> 
    <child3> 

我想通過使用XPath選擇每個XML的兒童的標籤名稱的XML。 xpath語法應該是什麼?

我嘗試了很多,但無法解決問題。

+0

這是爲什麼需要? –

回答

1

用途:local-name()可以用來獲取元素的名稱 name(/*/*)

name()功能或。 local-name()雖然刪除了前綴部分。

0

你可以用下面的XPath獲得了「具體的」子標籤:

//root/*[starts-with(name(), 'child')] 

,因爲所有你感興趣的開始與「孩子」的標籤,這將讓你在每一種情況下正確的節點。

要打印的標籤名稱,你可以去@Lingamurthy CS的解決方案:

只是使用name(yournode)local-name(yournode)

這是假設你的例子是正確的,你感興趣的標籤指導根的孩子。

+1

感謝您的解決方案,它爲我工作:) – 544a

+0

這不會**返回節點的**名稱**。此外,它假定名稱是部分已知的。我會認爲'child1','child2'等僅僅是例子。 –

+0

@ michael.hor257k你當然是對的!編輯我的答案。關於這個假設:這就是爲什麼我在我的回答中明確地說明了這一點,因爲它在這個問題上太含糊了。 – drkthng