2012-03-30 139 views
-10

這是我的XML代碼替換XML節點C#

<RuleDTO xsi:type="DefaultRuleDTO"> 
    <RuleID>0</RuleID> 
    <Priority xsi:nil="true" /> 
    <CreationDate>0001-01-01T00:00:00</CreationDate> 
    <Status>false</Status> 
    <USBStatus>false</USBStatus> 
    <PolicyID>0</PolicyID> 
    <EnfroceUserRule>true</EnfroceUserRule> 
    <DefaultRule>false</DefaultRule> 
</RuleDTO> 

這裏是另一個XML代碼

<RuleDTO xsi:type="SizeRuleDTO"> 
    <RuleID>23</RuleID> 
    <RuleName>test</RuleName> 
    <Description>sdf</Description> 
    <Priority xsi:nil="true" /> 
    <CreatedBy>administrator</CreatedBy> 
    <CreationDate>2012-03-27T03:18:19</CreationDate> 
    <Status>true</Status> 
    <USBStatus>false</USBStatus> 
    <PolicyID>5</PolicyID> 
    <Size>4</Size> 
</RuleDTO> 
<RuleDTO xsi:type="DefaultRuleDTO"> 
    <RuleID>0</RuleID> 
    <Priority xsi:nil="true" /> 
    <CreationDate>0001-01-01T00:00:00</CreationDate> 
    <Status>false</Status> 
    <USBStatus>false</USBStatus> 
    <PolicyID>0</PolicyID> 
    <EnfroceUserRule>true</EnfroceUserRule> 
    <DefaultRule>false</DefaultRule> 
</RuleDTO> 

在這裏我要與特定的節點和子節點的第二代碼替換第一個代碼。

我該如何改變它?

+1

然後簡單地使用XML第二@ – 2012-03-30 07:33:15

+0

我L.B希望您使用,以更換新 – 2012-03-30 07:34:45

+0

這是XML的API,特定部分? – 2012-03-30 07:42:42

回答

0

你的意思是這樣的嗎?

 XmlDocument xmlDoc = new XmlDocument(); 
     XmlDocument xmlDoc2 = new XmlDocument(); 

     xmlDoc.Load(xmlFile); 
     xmlDoc2.Load(xmlFile2); 


     XmlNode node = xmlDoc.SelectSingleNode("Root/RuleDTO/RuleID"); 
     XmlNode node2 = xmlDoc2.SelectSingleNode("Root/RuleDTO[1]/RuleID"); 
     XmlNode node3 = xmlDoc2.SelectSingleNode("Root/RuleDTO[2]/RuleID"); 

     if (node != null && node2 != null && node3 != null) 
      node3.InnerText = node2.InnerText = node.InnerText; 

     xmlDoc2.Save(xmlFile2); 
1

您是否嘗試過,

XElement first = ... 
XElement second = ... 

first.ReplaceWith(second);