📅  最后修改于: 2023-12-03 15:06:04.971000             🧑  作者: Mango
在C#程序中,XML文档的处理是非常常见的操作,其中一个重要的操作就是更新XML节点的属性值,本文将介绍如何在C#中实现XML节点的更新。
首先,我们需要使用XmlDocument
类来加载XML文档。假设我们有一个名为example.xml
的XML文档,代码如下:
XmlDocument doc = new XmlDocument();
doc.Load("example.xml");
我们需要使用XPath表达式来选择要更新的XML节点。XPath表达式可以快速的定位到某个节点。例如,我们要更新下面的例子中的节点book
的属性price
,可以使用XPath表达式/catalog/book[@id='bk101']
来定位该节点:
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<book id="bk101" language="en">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
</catalog>
在C#中,我们可以使用SelectSingleNode
方法来选中要更新的节点。代码如下:
XmlNode node = doc.SelectSingleNode("/catalog/book[@id='bk101']");
要更新XML节点的属性值,我们可以使用节点的Attributes
属性来访问所有属性。例如,我们要更新book
节点的price
属性,可以使用以下代码:
XmlAttribute priceAttribute = node.Attributes["price"];
if (priceAttribute != null)
{
priceAttribute.Value = "59.99";
}
如果属性不存在,则需要先创建属性并设置值。例如,我们要更新book
节点的publisher
属性,可以使用以下代码:
XmlAttribute publisherAttribute = node.Attributes["publisher"];
if (publisherAttribute == null)
{
publisherAttribute = doc.CreateAttribute("publisher");
node.Attributes.Append(publisherAttribute);
}
publisherAttribute.Value = "ABC Company";
最后,保存XML文档。
doc.Save("example.xml");
以上就是在C#中更新XML节点属性值的完整代码:
XmlDocument doc = new XmlDocument();
doc.Load("example.xml");
XmlNode node = doc.SelectSingleNode("/catalog/book[@id='bk101']");
XmlAttribute priceAttribute = node.Attributes["price"];
if (priceAttribute != null)
{
priceAttribute.Value = "59.99";
}
XmlAttribute publisherAttribute = node.Attributes["publisher"];
if (publisherAttribute == null)
{
publisherAttribute = doc.CreateAttribute("publisher");
node.Attributes.Append(publisherAttribute);
}
publisherAttribute.Value = "ABC Company";
doc.Save("example.xml");