我有一个xml文档,其中一个带有特定名称的xml节点,比如'Data'可以出现在xml文档的任何地方,即层次结构中的任何位置。我需要仅使用节点名称读取这些节点并编辑节点属性。最简单的方法是什么?
答案 0 :(得分:4)
XmlDocument doc = new XmlDocument();
doc.Load(@"Test.xml");
XmlNodeList elem = doc.GetElementsByTagName("Data");
foreach (XmlNode tag in elem)
{
//do whatever you want to the attribute using SetAttribute method
}
答案 1 :(得分:3)
使用XPath,您可以找到所有数据节点: -
foreach(XmlElement elem in dom.SelectNodes("//Data"))
{
//do stuff to each elem.
}
其中dom是一个用Xml加载的XmlDocument。
或者,如果您更喜欢XDocument: -
foreach(XElement elem in doc.Descendents("Data"))
{
//do stuff to each elem.
}
答案 2 :(得分:1)
也许这样的事可能适合你?
XmlNodeList dataNodes = xmlDocument.SelectNodes('//Data')
foreach(XmlNode node in dataNodes)
{
.. // do whatever you need to do
}
马克
答案 3 :(得分:1)
这样的事情:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNodeList nodes = xmlDoc.SelectNodes("//Data");
for (int i = 0; i < nodes.Count; i++)
{
nodes[i].Attributes["somevalue"].Value = "edited";
}
xmlDoc.Save(fileName);