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 は古いDOM (XmlDocumentなど) 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 に答える