假设我有一个名称,我想要获取一个名为“XmlNode”的属性的值。我该怎么做呢?
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>
发布于 2013-01-03 09:55:02
为了扩展Konamiman的解决方案(包括所有相关的null检查),这是我一直在做的事情:
if (node.Attributes != null)
{
var nameAttribute = node.Attributes["Name"];
if (nameAttribute != null)
return nameAttribute.Value;
throw new InvalidOperationException("Node 'Name' not found.");
}
发布于 2009-10-21 18:54:57
您可以像处理节点一样遍历所有属性
foreach (XmlNode item in node.ChildNodes)
{
// node stuff...
foreach (XmlAttribute att in item.Attributes)
{
// attribute stuff
}
}
发布于 2016-05-19 20:01:10
如果使用chldNode
作为XmlElement
,而不是XmlNode
,则可以使用
var attributeValue = chldNode.GetAttribute("Name");
如果属性名称不存在,则返回return value will just be an empty string。
因此,您的循环可能如下所示:
XmlDocument document = new XmlDocument();
var nodes = document.SelectNodes("//Node/N0de/node");
foreach (XmlElement node in nodes)
{
var attributeValue = node.GetAttribute("Name");
}
这将选择由<Node><N0de></N0de><Node>
标签包围的所有节点名称,随后循环遍历它们并读取属性“<node>
”。
https://stackoverflow.com/questions/1600065
复制相似问题