C# 使用c重命名xml根节点#
我正在使用下面的代码更改根节点名称。但这对我不起作用。请帮我做这个。我的部分代码如下C# 使用c重命名xml根节点#,c#,asp.net,C#,Asp.net,我正在使用下面的代码更改根节点名称。但这对我不起作用。请帮我做这个。我的部分代码如下 XmlNode PackageListNode = hst_doc.SelectSingleNode("NewDataSet"); XmlNodeList PackageNodeList = PackageListNode.SelectNodes("Table5"); hst_doc.DocumentElement.Name.Replace("N
XmlNode PackageListNode = hst_doc.SelectSingleNode("NewDataSet");
XmlNodeList PackageNodeList = PackageListNode.SelectNodes("Table5");
hst_doc.DocumentElement.Name.Replace("NewDataSet", "rows");
请参阅此链接:
请遵循以下代码:
XmlDocument objDoc = new XmlDocument();
objDoc.LoadXml(str);
XmlDocument objNewDoc = new XmlDocument();
XmlElement objNewRoot = objNewDoc.CreateElement("MasterList");
objNewDoc.AppendChild(objNewRoot);
objNewRoot.InnerXml = objDoc.DocumentElement.InnerXml;
String xml = docNew.OuterXml;
希望对您有所帮助。我相信您在更改后不会调用Save()方法。请尝试下面的代码
XmlNode PackageListNode = hst_doc.SelectSingleNode("NewDataSet");
XmlNodeList PackageNodeList = PackageListNode.SelectNodes("Table5");
hst_doc.DocumentElement.Name.Replace("NewDataSet", "rows");
hst_doc.Save("filename");
试试这个
// Obtain a document; this method is implemented in
// The Quintessential Program to Create a DOM Document from an XML File
Document doc = parseXmlFile("infilename.xml", false);
// Obtain the root element
Element element = doc.getDocumentElement();
// Create an element with the new name
Element element2 = doc.createElement("newname");
// Copy the attributes to the new element
NamedNodeMap attrs = element.getAttributes();
for (int i=0; i<attrs.getLength(); i++) {
Attr attr2 = (Attr)doc.importNode(attrs.item(i), true);
element2.getAttributes().setNamedItem(attr2);
}
// Move all the children
while (element.hasChildNodes()) {
element2.appendChild(element.getFirstChild());
}
// Replace the old node with the new node
element.getParentNode().replaceChild(element2, element);
我只使用xmldoumnet而不是XML文件。我正在使用XMLDocument在修改后,您需要保存该文档。save()是根据您的要求选择的重载方法。
XDocument doc = XDocument.Load("input.xml");
doc.Root.Name = "program";
doc.Save("output.xml");