节点的XDocument搜索语法

本文关键字:语法 搜索 XDocument 节点 | 更新日期: 2023-09-27 18:26:34

我正在尝试用XDocument读取以下xml。

<?xml version="1.0" encoding="utf-8"?>
<Project>
  <ID />
  <ProjectName>sdgsdf</ProjectName>
  <ProjectDate>12-01-0001</ProjectDate>
  <ProjectToPost>
    <Website>
      <ID>4</ID>
      <Type>Web</Type>
    </Website>
    <Website>
      <ID>5</ID>
      <Type>Web</Type>
    </Website>
  </ProjectToPost>
  <ProjectToRead>
    <Website>
      <ID>6</ID>
      <Type>Web2</Type>
    </Website>
    <Website>
      <ID>7</ID>
      <Type>Web2</Type>
    </Website>
  </ProjectToRead>
</Project>

我可以用从一级获得结果

 XDocument xdocument = XDocument.Load(filenamepath);
            IEnumerable<XElement> Project = xdocument.Elements();
            foreach (var item in Project)
            {
                txt_1= item.Element("ID").Value;
                txt_2= item.Element("ProjectName").Value;                
                foreach (var item2 in item.Element("WebsitesToPost"))
                {
                }
            }

但后来我尝试使用嵌套元素,但我没有得到应该遵循的语法。提前谢谢。

节点的XDocument搜索语法

它可以是类似于这个的东西

var projectName = (string)xdocument.Root.Element("ProjectName");
var webSites =  xdocument.Root.Element("ProjectToPost")
                    .Elements("Website")
                    .Select(w => new
                    {
                        ID = (int)w.Element("ID"),
                        Type = (string)w.Element("Type"),
                    })
                    .ToList();