Misalkan saya memiliki XmlNode dan saya ingin mendapatkan nilai atribut bernama "Name". Bagaimana saya bisa melakukan itu?
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)
{
}
}
}
}
Dokumen XML:
<Root>
<Employee Name ="TestName">
<Childs/>
</Root>
<a x="1" />
, yang lulus ujian. Mungkin sesuatu seperti ituvar attr = node.Attributes["Name"]; if(attr != null) {...}
mungkin berhasil.Untuk memperluas solusi Konamiman (termasuk semua pemeriksaan null yang relevan), inilah yang telah saya lakukan:
sumber
Anda dapat melakukan loop melalui semua atribut seperti yang Anda lakukan dengan node
sumber
jika yang Anda butuhkan hanyalah nama, gunakan xpath sebagai gantinya. Tidak perlu melakukan iterasi sendiri dan memeriksa null.
sumber
Jika Anda menggunakan
chldNode
sebagaiXmlElement
penggantiXmlNode
, Anda dapat menggunakanNilai yang dikembalikan hanya berupa string kosong , jika nama atribut tidak ada.
Jadi loop Anda akan terlihat seperti ini:
Ini akan memilih semua node yang
<node>
dikelilingi oleh<Node><N0de></N0de><Node>
tag dan kemudian mengulanginya dan membaca atribut "Name".sumber
Menggunakan
untuk mendapatkan nilainya.
sumber
Anda juga bisa menggunakan ini;
sumber
Solusi lain:
Ini juga menghindari pengecualian ketika atribut yang diharapkan
attributeName
sebenarnya tidak ada.sumber