xml更改属性的值
我在xml文件中有以下文本:
我需要更改位于LibraryDirectory LibraryDirectory=
下的文本“C:\ XCAM”。
这样做的聪明方法是什么,我只是不想搜索LibraryDirectory=
然后搜索第一个和最后一个“然后更改文本。”
var doc = XDocument.Load("test.xml"); doc.Root.Element("XCAM").Attribute("LibraryDirectory").Value = "new value"; doc.Save("test.xml");
更新:
doc.Root .Element("InputFormats") .Element("XCAM") .Attribute("LibraryDirectory").Value = "new value";
或使用XPATH:
doc.XPathSelectElement("//InputFormats/XCAM") .Attribute("LibraryDirectory").Value = "new value";
不要忘记添加使用System.Xml.XPath
因为XPathSelectElement是一个扩展方法。
您可以通过这个基本的XSL样式表传递XML:
要将样式表应用于XML文档,可以使用XslCompiledTransform
类 。
您可以将文件加载到XmlDocument中,使用XPath选择属性,然后将其写回。 这要复杂得多,但可能是生产代码的“正确”解决方案。
如果要替换多个文件或多个匹配项,RegEx可能是一个更容易的选项 – 这可能是更快更短的代码,但它不是描述性的。 如果你正在做的是(比如说)编写一个非生产用途的工具(比如,转换一堆配置文件以便在不同的机器上使用),这可能是合理的。