首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在XDocument中解析嵌套节点

在XDocument中解析嵌套节点
EN

Stack Overflow用户
提问于 2020-06-19 23:11:04
回答 2查看 197关注 0票数 0

我正在使用.net来解析XML。下面是需要解析的XML。我需要收集来自Animal的id和来自AnimalNameAnimalPictureAnimalPicture类型的信息。

代码语言:javascript
复制
<AnimalEntry version="2.0">
  <Animal id="1">
   <Information>
     <Type>
       Indoor Pet
     <Type>
    <AvailableTypes> //always only 1 type
      <AvailableType> 
         <Active> 
             <AnimalName> Rupert</AnimalName>
             <AnimalPictures>   //Always only 1 picture
                 <AnimalPicture type="jpg"> random.jpg <AnimalPicture> 
            </AnimalPictures>
         </Active>
      </AvailableType>
    </AvailableTypes>
    <Price>10000</Price>
   </Information>
  </Animal>
</AnimalEntry>

我可以像下面这样收集id:

代码语言:javascript
复制
            XmlDocument xDoc new XmlDocument();
            xDoc.Load(xmlUrl);

            XmlNode node = xDoc.DocumentElement.ChildNodes[0];
            string id = node.Attributes["id"].Value;

我对如何处理嵌套节点并不熟悉。有没有推荐的方法来获取嵌套的AnimalName、AnimalPicture和OwnerId?我是否需要调用foreach,或者有没有方法可以直接获取节点?

EN

Stack Overflow用户

发布于 2020-06-20 00:23:07

使用linq to xml,您可以尝试这样的操作。如果您详细介绍了这种方法,还可以使用linq how-to-query-linq-to-xml-using-xpath尝试xpath。

代码语言:javascript
复制
        XElement element = XElement.Parse("Xml data");

        foreach (XElement xe in element.Elements(XName.Get("Animal")))
        {
            string id = xe.Attribute(XName.Get("id")).Value;
            var allChildrens = xe.Descendants();

            string animalName = allChildrens.FirstOrDefault(x => x.Name == "AnimalName")?.Value;
            string animalPicture = allChildrens.FirstOrDefault(x => x.Name == "AnimalPicture")?.Value;
            string animalPictureType = allChildrens.FirstOrDefault(x => x.Name == "AnimalPicture")?.Attribute(XName.Get("type"))?.Value;
        }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62473248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档