Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中重新排列Xml子节点#_C#_Xml_Xmlnode - Fatal编程技术网

C# 在c中重新排列Xml子节点#

C# 在c中重新排列Xml子节点#,c#,xml,xmlnode,C#,Xml,Xmlnode,我在重新排列xml数据时遇到问题 我喜欢这个 <PolicySummary> <InsuredName></InsuredName> <PolicyNumber></PolicyNumber> <PrevPolicyNumber></PrevPolicyNumber> <PolicyState></PolicyState> <TotalPrem

我在重新排列xml数据时遇到问题

我喜欢这个

<PolicySummary>
    <InsuredName></InsuredName>
    <PolicyNumber></PolicyNumber>
    <PrevPolicyNumber></PrevPolicyNumber>
    <PolicyState></PolicyState>
    <TotalPremium></TotalPremium>

    <Address></Address>
    <Address1></Address1>
    <City></City>
    <State></State>
    <Zip></Zip>
</PolicySummary>

尝试使用
XDocument
而不是
XmlDocument

var xDoc = XDocument.Parse(xmlString)

var root = xDoc.Element("PolicySummary");
var totalPremium = root.Element("TotalPremium");

//get all values you want to put in mailing address
var address = root.Element("Address");
//...

var mailingAddress = new XElement("MailingAddress");
mailingAddress.Add(address);

//Add mailing address after total premium
totalPremium.AddAfterSelf(mailingAddress);

//Remove all values you inserted in mailing address
address.Remove();

//If you want to save it somewhere
xDoc.Save(fileName);

请展示您所做的尝试,以便我们能够帮助您了解问题所在,而不仅仅是说它不起作用。另外,如果您可以使用LINQtoXML而不是XmlDocument,这将使事情变得更简单。但是我想要重新排列的输出,那么您当前的代码作为输出给出了什么呢?(另外,请格式化您的代码-现在到处都是。)
XmlDocument policysummary = new XmlDocument();

XmlNode copynode = policysummary.ImportNode(
   xmlautoDocument.SelectSingleNode("PolicySummary/TotalPremium"), true);

XmlNode premium = policysummary.SelectSingleNode("TotalPremium");
XmlNode addressss = policysummary.CreateNode(XmlNodeType.Element,
                                            "Mailingaddress", null);
XmlNode root2 = policysummary.DocumentElement;

premium.InsertAfter(addressss, premium);
var xDoc = XDocument.Parse(xmlString)

var root = xDoc.Element("PolicySummary");
var totalPremium = root.Element("TotalPremium");

//get all values you want to put in mailing address
var address = root.Element("Address");
//...

var mailingAddress = new XElement("MailingAddress");
mailingAddress.Add(address);

//Add mailing address after total premium
totalPremium.AddAfterSelf(mailingAddress);

//Remove all values you inserted in mailing address
address.Remove();

//If you want to save it somewhere
xDoc.Save(fileName);