2016-06-28 3 views
0

私はのXMLを持っています。私はxmlノードから特定のタグを削除したいと思います。どうやってするの。C#を使用して特定のノードを削除して追加するにはどうすればよいですか?

XML形式:

<?xml version="1.0"?> 
<EmployeeResults> 
    <MainArea> 
    <CreationDateTime>2016-06-28T06:10:51.5215523Z</CreationDateTime> 
    </MainArea> 
    <SubArea> 
    <Show> 
     <ID>TEST1</ID> 
    </Show> 
    <ProductionPerformance> 
     <ID>Fabrication_ERP_MES_DEM_1-A</ID> 
     <ProductionResponse> 
     <ID>123</ID>   
     <StartTime>0001-01-01T00:00:00Z</StartTime> 
     <EndTime>0001-01-01T00:00:00Z</EndTime> 
     <EmployeeResponse> 
      <ID>LotEmployeeResponse</ID>   
      <ActualStartTime>2016-06-28T05:58:41.673Z</ActualStartTime> 
      <ActualEndTime>0001-01-01T00:00:00Z</ActualEndTime>    
      <Quantity> 
       <QuantityString>1</QuantityString> 
      </Quantity> 
      </MaterialActual> 
      <TagName1> 
      <ID>Test1</ID> 
      </TagName1> 
      <TagName2> 
      <ID>Test2</ID> 
      </TagName2> 
     </EmployeeResponse> 
     </ProductionResponse> 
    </ProductionPerformance> 
    </SubArea> 
</EmployeeResults> 

私はTagName3のための新しいタグ名を追加しTagName1ノード&を削除したいと思います。新しいノードを削除して追加する方法。

これを解決するのを手伝ってください。

+1

が見えるチェック:http://stackoverflow.com/questions/2470103/best-way -to-manipulate-xml-in-net一般的にlinqToXmlをチェックします。 –

答えて

0

これはそれを行う必要があります。 xmlInputは文字列としてのxmlで、xpathを使用して特定の要素を選択します。 https://msdn.microsoft.com/en-us/library/d271ytdx(v=vs.110).aspx

XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xmlInput); 

XmlNode node = doc.SelectSingleNode("XPATh"); 


if (node != null) 
{ 
    node.Remove(); 
} 
0

私はLinq

Xml
XDocument doc= XDocument.Load(filepath); 

// Remove the element 
doc.Descendants("TagName1") 
    .Remove(); 

// Add new Element - Test3 
doc.Descendants("EmployeeResponse") 
    .ElementAtOrDefault(0) 
    .Add(new XElement("TagName3", new XElement("ID", "Test3"))); 

を使用することをお勧めし、それはの重複しているようDemo

関連する問題