簡體   English   中英

通過指定屬性值使用linq查詢嵌套的xml

[英]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格式不正確,我已在代碼中更正了該錯誤,請相應地對其進行更改。

您可以通過從TestCaseUserId這樣來完成此操作:-

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM