[英]How can i replace the xml elements with new elements in c#
我想用新元素替換xml標記中的現有元素。 XML示例如下:
<Dr.Watson>
<Bugs>
<Bug Name="Bug.add --> AAAAAAAAAAAA">
<criteria>
<includeFilterSets>
<filterSet>
<filter>
<filterName>PRODUCT_NAME</filterName>
<operator>
<name>Equals</name>
</operator>
<value>Dr.Watson</value>
</filter>
</filterSet>
</includeFilterSets>
<grouping>
<groupBy>
<name>STATUS</name>
</groupBy>
</grouping>
<caseSensitive>false</caseSensitive>
<entityToSearch>
<name>BUG</name>
</entityToSearch>
</criteria>
</Bug>
</Bugs>
</Dr.Watson>
到目前為止,我有代碼:
XmlDocument doc = new XmlDocument();
doc.LoadXml(FilePath_EXPRESS_API_InputFile);
XmlNodeList nodelist = doc.SelectNodes("/Dr.Watson/Bugs/Bug");
//create node and add value
//Console.WriteLine(mxpwr.Value);
XmlNode node = doc.CreateNode(XmlNodeType.Element, "grouping", null);
XmlNode node11 = doc.CreateNode(XmlNodeType.Element, "groupBy", null);
XmlNode node12 = doc.CreateNode(XmlNodeType.Element, "name", null);
//Create Title Node
XmlNode Test_11 = doc.CreateElement("grouping");
XmlNode Test_22 = doc.CreateElement("groupBy");
XmlNode Test_44 = doc.CreateElement("name");
//add value for it
Test_11.InnerText = ("");
Test_22.InnerText = ("");
Test_44.InnerText = ("");
//create Url node
//XmlNode Test_445 = doc.CreateElement("sai");
Test_44.InnerText = ("STATE");
//add to parent node
Test_11.AppendChild(Test_22);
Test_22.AppendChild(Test_44);
//add to elements collection
doc.DocumentElement.AppendChild(Test_11);
Test_11.AppendChild(Test_22);
Test_22.AppendChild(Test_44);
請為我提出建議並為我提供幫助,因為我是xml場景的c#的新手。此外,請注意,我不想保存這些編輯,並且不想使用經過編輯的xml運行時來執行API。
通過XML-DOM API替換節點( XmlDocument
等):
XmlNode
(或子類)的實例parent
,表示要替換的節點的父元素。 parent.RemoveChild
刪除舊節點。 parent.AppendChild
添加新節點。 (作為#3的替代方法,請使用parent.InsertAfter
或parent.InsertBefore
以及對另一個孩子的引用,以將新節點放置在其他現有孩子中。)
您在問題中編寫的代碼似乎是從頭開始構造新的XML文檔:為什么要替換節點-只需一次創建正確的節點即可。 要修改現有的XML文檔,請使用靜態XmlDocument.Load
方法之一來加載和解析現有文檔,使用各種搜索和導航方法來獲取上述#1中的引用,然后應用上述步驟,最后按正常方式保存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.