Załóżmy, że otrzymałem XmlNode i chcę przypisać wartość attirbute "Name". Jak mogę to zrobić?Jak odczytać wartość atrybutu z XmlNode w C#?
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 Doc:
<Root>
<Employee Name ="TestName">
<Childs/>
</Root>
Należy zachować ostrożność przy takim podejściu. Myślę, że jeśli atrybut nie jest obecny, dostęp do elementu wartości spowoduje wyjątek odwołania zerowego. –
if (node.Attributes! = Null) string employeeName = chldNode.Attributes ["Name"]. Wartość; – Omidoo
@Omidoo To podejście ma ten sam problem, na przykład z '', który przechodzi test. Być może coś takiego jak 'var attr = node.Attributes [" Name "]; if (attr! = null) {...} 'może działać. – Nenotlep