替换c#中的xml节点

本文关键字:节点 xml 中的 替换 | 更新日期: 2023-09-27 18:29:40

这是我的xml代码

<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>

在这里,我想将第一个代码替换为具有特定节点和子节点的第二个代码。

我该怎么改?

替换c#中的xml节点

你试过吗,

XElement first = ...
XElement second = ...
first.ReplaceWith(second);

你的意思是这样的吗?

        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);