我有这个xml
<genral>
<mynode id="1">
<first id="1.1">
<nodechild-first id="1.1.1"></nodechild-first>
<nodechild-seconed id="1.1.2"></nodechild-seconed>
</first>
</mynode>
</genral>
我需要重命名其中一个节点名称,例如将<first>
的名称更改为<f>
或<nodechild-first>
到<c-f>
我怎样才能使用asp.net(XmlDocument)。
目标名称节点和新名称节点的值由两个字符串变量表示。
感谢您的帮助
答案 0 :(得分:1)
您不能只更改已存在的节点的名称。你需要做的是。
我还应该告诉你,你不能重命名根节点,如果你想这样做,你需要在5之后切换make 3.或者你需要将它插入到新的XMLDocument中,因为它赢了& #39; t允许你有两个根节点。
此致
答案 1 :(得分:0)
抱歉误解了......想着它。
从外观上看,你无法改变节点名称。 您可以尝试创建一个新的XML文件,并在那里为它们指定不同的名称或创建新节点。
OLD *
在您要执行此操作的课程中使用此选项:
Private Shared ReadOnly XMLFile As String = "LinkToYourXML"
Dim mappingDataXml As System.Xml.XmlDocument = New System.Xml.XmlDocument mappingDataXml.Load(XMLFile)
For Each node As System.Xml.XmlNode In mappingDataXml.SelectNodes("/genral/mynode/first")
node.SelectSongleNode("nodechild-first").InnerText = "The text you want to have in there."
Next
希望这可能有任何帮助:)
OLD *
答案 2 :(得分:0)
好这是我解决问题的方法,在我的xml中没有两次相同的节点名称(所以每个人都应该做出自己的更改,但主要思路是一样的
Sub btnc_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnc.Click
Dim xmldoc As XmlDocument = New XmlDocument()
xmldoc.Load(Server.MapPath("yuor xml path"))
Dim nodee As XmlNodeList = xmldoc.GetElementsByTagName(tempstr)//path to node
' parent element of the element we want to replace
Dim parentElement As XmlNode = nodee(0).ParentNode
' element we want to replace
Dim oldXmlNode As XmlNode = nodee(0)
' new element
Dim newXmlElement As XmlElement = xmldoc.CreateElement(txtdes.Value)
Dim temp As XmlAttribute = oldXmlNode.Attributes("id")//adding attirbute old->new
newXmlElement.Attributes.Append(temp)
Dim node As XmlNode = oldXmlNode.FirstChild node
buildtree(newXmlElement, xmldoc, node)//copy first child to new
node = node.NextSibling /taking next Sibling
While Not IsNothing(node)//while node has brothers
buildtree(newXmlElement, xmldoc, node)/copy Sibling old->new
node = node.NextSibling //next Sibling
End While
parentElement.ReplaceChild(newXmlElement, oldXmlNode)// making the switch
xmldoc.Save(Server.MapPath("path"))
End Sub
Sub buildtree(ByVal newnode As XmlNode, ByVal xmldoc As XmlDocument, ByVal oldxmlnode As XmlNode)
newnode.AppendChild(xmldoc.ImportNode(oldxmlnode, True))
End Sub