将以下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");
任何建议

将以下Linq转换为xml到.net 2.0

您可以考虑使用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属性)

http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx

要选择节点,您应该传递XPath查询,参考可以找到:

http://www.w3schools.com/xpath/

如果XML包含命名空间,则需要使用XmlNamespaceManager:

http://msdn.microsoft.com/en-us/library/system.xml.xmlnamespacemanager.aspx

您将需要使用XmlDocument,并使用XPathSelectNodes查询它。