C# で XmlNode から属性値を読み取るにはどうすればいいですか? 質問する

C# で XmlNode から属性値を読み取るにはどうすればいいですか? 質問する

XmlNode があり、「Name」という名前の属性の値を取得したいとします。どうすればよいでしょうか?

XmlTextReader reader = new XmlTextReader(path);

XmlDocument doc = new XmlDocument();
XmlNode node = doc.ReadNode(reader);

foreach (XmlNode chldNode in node.ChildNodes)
{
     **//Read the attribute Name**
     if (chldNode.Name == Employee)
     {                    
         if (chldNode.HasChildNodes)
         {
             foreach (XmlNode item in node.ChildNodes)
             { 

             }
         }
      }
}

XML ドキュメント:

<Root>
    <Employee Name ="TestName">
    <Childs/>
</Root>

ベストアンサー1

これを試して:

string employeeName = chldNode.Attributes["Name"].Value;

編集:コメントで指摘されているように、属性が存在しない場合は例外がスローされます。安全な方法は次のとおりです。

var attribute = node.Attributes["Name"];
if (attribute != null){
    string employeeName = attribute.Value;
    // Process the value here
}

おすすめ記事