5

我有一个如下的 XML 文件

<Attachment>
  <FileName>Perimeter SRS.docx</FileName>
  <FileSize>15572</FileSize>
  <ActivityName>ActivityNamePerimeter SRS.docx</ActivityName>
  <UserAlias>JameelM</UserAlias>
  <DocumentTransferId>7123eb83-d768-4a58-be46-0dfaf1297b97</DocumentTransferId>
  <EngagementName>EAuditEngagementNameNew</EngagementName>
  <Sender>JameelM@orioninc.com</Sender>
</Attachment>

我读了这些 xml 文件,如下所示

var doc = new XmlDocument();

doc.Load(files);

foreach (XmlElement pointCoord in doc.SelectNodes("/Attachment"))
{

}

我需要在 Attachment 节点中获取每个子节点值。如何从 xml 节点列表中获取这些 xml 元素?

4

3 回答 3

10

我需要在 Attachment 节点中获取每个子节点值。

你的问题很不清楚,但看起来很简单:

foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
}

毕竟,在您向我们展示的文档中,Attachment 文档元素。不需要 XPath。

顺便说一句,如果您使用的是 .NET 3.5 或更高版本,LINQ to XML 是一个XmlDocument旧的 DOM ( etc) API更好的 XML API。

于 2013-01-03T09:54:31.663 回答
1

试试这个

 var data = from item in doc.Descendants("Attachment")
             select new
             {
                  FileName= item.Element("FileName").Value,
                  FileSize= item.Element("FileSize").Value,
                  Sender= item.Element("Sender").Value
              };
 foreach (var p in data)
     Console.WriteLine(p.ToString());
于 2013-01-03T09:47:45.980 回答
0
var doc = new XmlDocument();

doc.Load(files);

foreach (XmlElement pointCoord in doc.SelectNodes("/Attachment"))
{
    if(pointCoord!=null)
    {
        var valueOfElement=pointCoord.InnerText;
    }
}

如果要针对元素名称(UserAlias 等)运行条件逻辑,请使用 XmlElement 的 Name 属性。

于 2013-01-03T09:50:14.513 回答