2013-02-19 39 views
1

示例XML;不處理子節點(使用「SelectNodes」)

<root> 
    <cmdset>Set 1 
    <cmd>Command 1</cmd> 
    </cmdset> 
    <cmdset>Set 2 
    <cmd>Command 2</cmd> 
    </cmdset> 
</root> 

我只想從<cmdset>標籤內拉出文本。示例代碼;

Sub Main() 
     Dim doc As XmlDocument = New XmlDocument() 
     doc.Load("help.xml") 
     For Each Element As XmlElement In doc.SelectNodes("//cmdset") 
      Console.WriteLine(Element.InnerText) 
     Next 
     Console.Read() 
    End Sub 

電流輸出;

Set 1 
    Command 1 
Set 2 
    Command 2 

期望的輸出;

Set 1 
Set 2 

謝謝請

+0

我想你可能會想改變你的xml,使'set'是一個屬性。 ''cmdset name =「設置1」>'b/c內部文字是要拉內部的一切'' – 2013-02-19 20:18:26

回答

1

您需要使用XPath text()功能選擇只是文本內容,比如:

For Each textNode As XmlText In doc.SelectNodes("//cmdset/text()") 
    Console.WriteLine(textNode.InnerText) 
Next 

請注意,我也從一個XmlElement變量變化的迭代器到XmlText變量,因爲XML文檔中的文本內容不被視爲元素節點,而是文本節點。

+0

現貨,謝謝 – 2013-02-19 21:05:48