我的XML看起来像这样(从文件中读取):
<root>
<date month="November" year="2001"/>
</root>
我正在尝试编辑日期元素中的年份属性值,假设为“3000”。 我正在使用XmlDocument和XmlReader类来编辑这个属性,如下所示:
XmlDocument xml = new XmlDocument();
using (XmlReader reader = XmlReader.Create(xmlPath))
xml.Load(reader);
问题是,XmlReader读取XML如下:
<root>
<date month="November" year="2001"> </date>
</root>
意思是,它将结束元素添加到日期元素中。 我稍后使用Save方法保存已编辑的XML。
我需要最终的XML与原始XML一样使用短标签。 有没有办法在不添加结束元素的情况下使用XmlReader?
答案 0 :(得分:3)
如果XML文件不是很大,您可以使用XElement
进行就地编辑:
XElement xml = XElement.Load("test.xml");
var date = xml.Element("date");
date.Attribute("year").SetValue("3000");
xml.Save("test.xml");
答案 1 :(得分:0)
试试这个解决你的问题。我只是更新年份属性,你可以相应地改变
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(Server.MapPath("~/Book.xml"));
XmlNode node;
node = myXmlDocument.DocumentElement;
foreach (XmlNode node1 in node.ChildNodes)
{
if (node1.Name == "date")
{
node1.Attributes["year"].Value = "2005";
}
}
myXmlDocument.Save(Server.MapPath("~/Book1.xml"));