Заменить узел XML в C # - PullRequest
0 голосов
/ 30 марта 2012

Это мой 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>

Здесь я хочу заменить первый код вторым кодом с определенным узлом и подузлом.

Как я могу это изменить?

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Вы пробовали,

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

first.ReplaceWith(second);
0 голосов
/ 30 марта 2012

Ты имеешь в виду что-то подобное?

        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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...