2012-03-30 87 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);