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