簡體   English   中英

我如何用C#中的新元素替換xml元素

[英]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等):

  1. 獲取XmlNode (或子類)的實例parent ,表示要替換的節點的父元素。
  2. 使用parent.RemoveChild刪除舊節點。
  3. 使用parent.AppendChild添加新節點。

(作為#3的替代方法,請使用parent.InsertAfterparent.InsertBefore以及對另一個孩子的引用,以將新節點放置在其他現有孩子中。)

您在問題中編寫的代碼似乎是從頭開始構造新的XML文檔:為什么要替換節點-只需一次創建正確的節點即可。 要修改現有的XML文檔,請使用靜態XmlDocument.Load方法之一來加載和解析現有文檔,使用各種搜索和導航方法來獲取上述#1中的引用,然后應用上述步驟,最后按正常方式保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM