2009-12-10 43 views
0

我正在向ssh會話提交命令並獲取返回的XML響應,這取決於我正在運行的查詢的類型。我得到了以下類型的XML返回...如何在.NET中使用Linq到XML枚舉變量XML文檔

<CLIOutput> 
    <Results> 
    <ReturnCode>0</ReturnCode> 
    <EventCode>23000</EventCode> 
    <EventSummary>CLI command completed successfully.</EventSummary> 
    </Results> 
    <Data> 
    <Row> 
     <Client>kcllaptop</Client> 
     <Domain>/Top/Top</Domain> 
    </Row> 
    <Row> 
     <Client>testclient</Client> 
     <Domain>/Top/Top</Domain> 
    </Row> 
    </Data> 
</CLIOutput> 

然後我解析成一個XDocument,和我想要做的是通過在<數據>部分不同<行>屬性枚舉,給他們改變。它們始終處於DATA部分,但它們的屬性名稱和編號會更改。我可以在上面的示例中獲得特定的一個,但是我使用了更通用的方法。

我可以

_xDoc.Elements().<Data>.<Rows>(0).<Client>.ToValue 

但<客戶>名稱更改獲取到specifcs。

枚舉元素中返回的行的最好方法是什麼?

Complete LInq新手對不起。

謝謝和歡呼,Al

+0

對不起,澄清 - 屬性的名稱更改了,我不能讓序號計數工作。 – 2009-12-13 20:24:26

回答

0

通過SLaks作品的答案。但是,在VB.NET中,您不需要.Elements()方法。

這將做同樣的事情:

For Each row in _xDoc.<Data>.<Row> 
    Console.WriteLine(row.<Client>.Value) 
Next 
+0

對不起 - 我的意思是,下次可能不是,它可能是<域名>。我最終得到了我想在C#中工作的內容,然後將其轉換爲VB.Net - 而不是VB.Net開發人員,但必須將某些內容集成到現有的庫中。 – 2009-12-13 20:25:55

+0

好的,如果需要,我可以幫助使用VB.NET語法。 – CoderDennis 2009-12-13 21:47:23

0

我假設你使用VB.Net。

你也可以遍歷的Elements方法的返回值,就像這樣:

For Each client As XElement In _xDoc.Elements().<Data>.<Row> 
    'Do something 
Next 
+0

應該是。 而不是。 CoderDennis 2009-12-11 17:57:28