[英]Querying the nested xml using linq by specifying attribute value
我的xml模式如下:
<TestSuite>
<TestCase Name="Connect">
<Input>
<AppName>XYZ</AppName>
<UserId>Vishwas</UserId>
</Input>
</TestCase>
<TestCase Name="Create">
<Input>
<FileName>abc</AppName>
</Input>
<OutPut>
<Filesize></Filesize>
</TestCase>
<TestSuite>
我如何編寫一個LINQ to XML查詢來檢索UserId的值,該值存在於測試用例名稱“ Connect”中,我是linq的新手,期待您的幫助並表示感謝。
首先,您的XML格式不正確,我已在代碼中更正了該錯誤,請相應地對其進行更改。
您可以通過從TestCase
到UserId
這樣來完成此操作:-
var xdoc = XDocument.Parse(@"<TestSuite><TestCase Name=""Connect""><Input>
<AppName>XYZ</AppName><UserId>Vishwas</UserId></Input></TestCase>
<TestCase Name=""Create""><Input><FileName>abc</FileName></Input><OutPut>
<Filesize></Filesize></OutPut></TestCase></TestSuite>");
string userid = (xdoc.Descendants("TestCase")
.Where(x => (string)x.Attribute("Name") == "Connect")
.Select(x => (string)x.Element("Input").Element("UserId")))
.FirstOrDefault();
或者,您可以選擇“ Input
節點,然后既可以過濾也可以選擇以下項目:-
string userid = (from x in xdoc.Descendants("Input")
where (string)x.Parent.Attribute("Name") == "Connect"
select (string)x.Element("UserId")).FirstOrDefault();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.