将以下Linq转换为xml到.net 2.0
本文关键字:net xml Linq 转换 | 更新日期: 2023-09-27 18:15:06
我最近在一个。net 2.0项目上工作,我必须读取一些xml文件并替换某些元素值。想知道如何在不使用linq to xml的情况下完成以下操作?
IEnumerable<XElement> cities= xmldoc.Descendants("City")
.Where(x => x.Value == "London");
foreach (XElement myElem in cities)
{
myElem.ReplaceWith(new XElement("City", "NewCity"));
}
或
var xElement = xdoc.Descendants("FirstName").Where(x => x.Value == "Max").First();
xElement.ReplaceWith(new XElement("FirstName", "NewValue");
任何建议
您可以考虑使用XmlDocument,像这样:
string xmlFile = "<xml><data<test /><test /><test /><test /></data></xml>";
var xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFile);
var oNodes = xmlDoc.SelectNodes("//test");
foreach (var oNode in oNodes)
{
oNode.InnerText = "bla bla";
}
xmlDoc.Save("..path to xml file");
(在您的情况下,您可以使用文档的InnerXml
属性)
要选择节点,您应该传递XPath查询,参考可以找到:
http://www.w3schools.com/xpath/如果XML包含命名空间,则需要使用XmlNamespaceManager:
http://msdn.microsoft.com/en-us/library/system.xml.xmlnamespacemanager.aspx您将需要使用XmlDocument
,并使用XPath
和SelectNodes
查询它。