Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#XML查找第一个元素子体_C#_Xml_Linq_Linq To Xml_Xelement - Fatal编程技术网

C#XML查找第一个元素子体

C#XML查找第一个元素子体,c#,xml,linq,linq-to-xml,xelement,C#,Xml,Linq,Linq To Xml,Xelement,正在查找第一个项目的categoryId和categoryName。 它也可能不退货 XML看起来像这样 <findItemsByKeywordsResponse xmlns="http://..."> <ack>Success</ack> <version>1.13.0</version> <timestamp>2016-11-10T17:48:21.321Z</timestamp> &

正在查找第一个
项目的
categoryId
categoryName
。 它也可能不退货

XML看起来像这样

<findItemsByKeywordsResponse xmlns="http://...">
   <ack>Success</ack>
   <version>1.13.0</version>
   <timestamp>2016-11-10T17:48:21.321Z</timestamp>
   <searchResult count="1">
      <item>
        <itemId>12354</itemId>
        <title>ABCD#</title>
        <globalId>ddd</globalId>
        <primaryCategory>
          <categoryId>**1234**</categoryId>
          <categoryName>**Catg Nameee**</categoryName>
        </primaryCategory>
      </item>
   </searchResult>
   <paginationOutput>
   </paginationOutput>
</findItemsByKeywordsResponse>   


因为根元素定义了一个名称空间,所以在搜索子项时应该执行的操作是指定名称空间:

XNamespace ns = @"http://www.ebay.com/marketplace/search/v1/services";
var result = XDocument.Load("data.xml")
          .Descendants(ns + "item")
          .FirstOrDefault()?.Element(ns + "primaryCategory");

var categoryId = result?.Element(ns + "categoryId")?.Value;
var categoryName = result?.Element(ns + "categoryName")?.Value;
您还可以使用C#6.0空传播(
?:
)以更优雅的方式检索
。请记住,如果没有
标记或
标记,则结果将等于
null

此外,尝试找到第一个回答某个谓词的
可能更有意义。如果是这种情况,请使用以下命令更改
.FirstOrDefault()

.FirstOrDefault(item=>item.Element(“itemId”).Value==“12345”)
例如,如果有多个项,那么我假设没有属性来区分它们?@monsey11-在给定的xml和Works上进行了测试,谢谢Gilad。תודה רבה