2013-04-01 73 views
0

大家好,我有這個XML文檔,我想提取第一或第二的應用程序文件的路徑和文件名等香港專業教育學院試圖如何從文件中讀取多個xml元素?

DocumentElement.SelectSingleNode("/InstallerList/Installer/File_Path").InnerText 

但我只得到第一個應用程序的信息,從來沒有第二,香港專業教育學院試圖玩弄

DocumentElement.SelectNodes("//Installer") 

,並增加它的結束一個整數,所以我可以通過循環但它似乎沒有這樣的。有什麼想法嗎?

<?xml version="1.0" encoding="utf-8"?> 
<InstallerList> 
<Installer Name="First Application"> 
    <FilePath>C:\</FilePath> 
    <Third_Parameter>etc</Third_Parameter> 
    <Forth_Parameter>etc</Forth_Parameter> 
</Installer> 
<Installer Name="Second Application"> 
    <FilePath>etc</FilePath> 
    <Third_Parameter>etc</Third_Parameter> 
    <Forth_Parameter>etc</Forth_Parameter> 
</Installer> 
</InstallerList> 

回答

0

如果您想選擇只是一個單一的FilePath元素,給一些已知的鍵值,如安裝程序的Name屬性,你可以添加一個條件,你的XPath來縮小的結果,就像這樣:

DocumentElement.SelectSingleNode("/InstallerList/Installer[@Name='First Application']/FilePath").InnerText 

或者,你可以簡單地選擇所有的FilePath元素,然後依次通過他們,就像這樣:

For Each node As XmlNode In DocumentElement.SelectNodes("/InstallerList/Installer/FilePath") 
    Dim path As String = node.InnerText 
    ' ... 
Next 
+0

您的幫助對於初學者一好,謝謝nd當我嘗試DocumentElement.SelectSingleNode(「/ InstallerList/Installer [@Name =」+ app +「]/FilePath」)。設置錯誤任何想法? – crackruckles

+0

它爲我工作。你忘了圍繞'app'的值開啓和關閉單引號嗎? –