当前位置: 代码迷 >> C# >> ,紧急救助,关于C# XML
  详细解决方案

,紧急救助,关于C# XML

热度:40   发布时间:2016-05-05 02:38:25.0
求助求助,紧急救助,关于C# XML!
<?xml version="1.0"?>
<ufinterface sender="945" receiver="u8" roottag="eb_trade" efserverid="999" eftype="98" docid="141140162" proc="Add" codeexchanged="n" exportneedexch="945" paginate="0" display="XXX" family="XXX" dynamicdate="12/12/2014" maxdataitems="20000" bignoreextenduserdefines="y" succeed="1" dsc="">
    <cShopCode>209D18791DE7B8D1</cShopCode>
    <tid>201510110000000005</tid>
    <title>241241234</title>
    <receiver_name />
    <receiver_state>11</receiver_state>
    <receiver_city>1101</receiver_city>
    <receiver_district>110118</receiver_district>
    <receiver_address />
    <receiver_zip>300000</receiver_zip>
    <receiver_mobile />
    <isInvoice>1</isInvoice>
    <receiver_phone />
    <created>2015-10-1118:32:33</created>
    <buyer_message>test</buyer_message>
    <invoice_name>241241234</invoice_name>
    <cInvoiceCode>112111</cInvoiceCode>
    <cExpressCoName>1</cExpressCoName>
    <body>
        <entry>
            <title>201510110000000005-0000031872-00000000000000006230</title>
            <num_iid>1100002320EA</num_iid>
            <sku_id>1100002320EA</sku_id>
            <num>1</num>
            <price>5.4</price>
        </entry>
        <entry>
            <title>201510110000000005-0000031872-00000000000000006230</title>
            <num_iid>1100002320EA</num_iid>
            <sku_id>1100002320EA</sku_id>
            <num>1</num>
            <price>5.4</price>
        </entry>
    </body>
</ufinterface>

这是json反序列化对象,
然后再序列化成xml的。
但现在我需要在<cShopCode>和<cExpressCoName>的外面再包围一层<header><herader/>,
然后除了根节点外面再包围一层<eb_trade></eb_trade>。



效果如下!求大神赐教。


<?xml version="1.0"?>
<ufinterface sender="945" receiver="u8" roottag="eb_trade" efserverid="999" eftype="98" docid="141140162" proc="Add" codeexchanged="n" exportneedexch="945" paginate="0" display="XXX" family="XXX" dynamicdate="12/12/2014" maxdataitems="20000" bignoreextenduserdefines="y" succeed="1" dsc="">
    <eb_trade>
        <header>
            <cShopCode>209D18791DE7B8D1</cShopCode>
            <tid>201510110000000005</tid>
            <title>241241234</title>
            <receiver_name />
            <receiver_state>11</receiver_state>
            <receiver_city>1101</receiver_city>
            <receiver_district>110118</receiver_district>
            <receiver_address />
            <receiver_zip>300000</receiver_zip>
            <receiver_mobile />
            <isInvoice>1</isInvoice>
            <receiver_phone />
            <created>2015-10-1118:32:33</created>
            <buyer_message>test</buyer_message>
            <invoice_name>241241234</invoice_name>
            <cInvoiceCode>112111</cInvoiceCode>
            <cExpressCoName>1</cExpressCoName>
            </header>
                <body>
                    <entry>
                        <title>201510110000000005-0000031872-00000000000000006230</title>
                        <num_iid>1100002320EA</num_iid>
                        <sku_id>1100002320EA</sku_id>
                        <num>1</num>
                        <price>5.4</price>
                    </entry>
                    <entry>
                        <title>201510110000000005-0000031872-00000000000000006230</title>
                        <num_iid>1100002320EA</num_iid>
                        <sku_id>1100002320EA</sku_id>
                        <num>1</num>
                        <price>5.4</price>
                    </entry>
                </body>
           </eb_trade>
        </ufinterface>
------解决思路----------------------
string xml = @"<?xml version=""1.0""?>
<ufinterface sender=""945"" receiver=""u8"" roottag=""eb_trade"" efserverid=""999"" eftype=""98"" docid=""141140162"" proc=""Add"" codeexchanged=""n"" exportneedexch=""945"" paginate=""0"" display=""XXX"" family=""XXX"" dynamicdate=""12/12/2014"" maxdataitems=""20000"" bignoreextenduserdefines=""y"" succeed=""1"" dsc="""">
<cShopCode>209D18791DE7B8D1</cShopCode>
<tid>201510110000000005</tid>
<title>241241234</title>
<receiver_name />
<receiver_state>11</receiver_state>
<receiver_city>1101</receiver_city>
<receiver_district>110118</receiver_district>
<receiver_address />
<receiver_zip>300000</receiver_zip>
<receiver_mobile />
<isInvoice>1</isInvoice>
<receiver_phone />
<created>2015-10-1118:32:33</created>
<buyer_message>test</buyer_message>
<invoice_name>241241234</invoice_name>
<cInvoiceCode>112111</cInvoiceCode>
<cExpressCoName>1</cExpressCoName>
<body>
    <entry>
        <title>201510110000000005-0000031872-00000000000000006230</title>
        <num_iid>1100002320EA</num_iid>
        <sku_id>1100002320EA</sku_id>
        <num>1</num>
        <price>5.4</price>
    </entry>
    <entry>
        <title>201510110000000005-0000031872-00000000000000006230</title>
        <num_iid>1100002320EA</num_iid>
        <sku_id>1100002320EA</sku_id>
        <num>1</num>
        <price>5.4</price>
    </entry>
</body>
</ufinterface>";
XElement root = XElement.Parse(xml);
var eles = root.Elements();
XElement header = new XElement("header", eles.Where(e => e.Name != "body"));
XElement eb_trade = new XElement("eb_trade", header, eles.First(e => e.Name=="body"));
root.RemoveNodes();
root.Add(eb_trade);
Console.WriteLine(root);
  相关解决方案