2012-11-22 55 views
2

我的XML看起來像在.NET中選擇具有相同的屬性名稱的單節點2.0

<article> 
    <article-id pub-id-type="local">ABC</article-id> 
    <article-id pub-id-type="external">XYZ</article-id> 
</article> 

我可以做以下

dim articleId as string = doc.SelectSingleNode("./article/article-id", nsm).InnerText 

,其結果是ABC

我不知道如何得到結果是XYZ - 我假設因爲我使用SelectSingleNode它獲取第一項。有沒有辦法讓它獲得第二個?

請注意,雖然我已經證明,只有2個節點爲例,可以有任意數量的所以它必須是「搜索」由

我沒有真正使用.NET 2.0的名稱「外部」之前和MSDN並沒有真正幫助我。

任何幫助將是偉大的,謝謝。

回答

1

您可以使用以下XPath:

"./article/article-id[@pub-id-type='external']" 

[@pub-id-type='external']是一個屬性過濾器。

如果您有多個可能的元素,您可以添加[last()]以獲得最後一個元素。

欲瞭解更多XPath信息,請查看this page

+0

雖然這可能就足夠了,但我不敢提及有時我可能有任意數量的節點 - 因此它必須是節點特定的(按名稱)。 (我已更新我的問題,對不起)+1 – Dave

+0

編輯我的答案。 :) –

+0

哈哈,我打算問@ @符號是否有任何相關性。完美,謝謝 – Dave

相關問題