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
当子节点同名时,如何从XML序列化到C#.net_C#_Xml - Fatal编程技术网

当子节点同名时,如何从XML序列化到C#.net

当子节点同名时,如何从XML序列化到C#.net,c#,xml,C#,Xml,这是文件结构: <BODY> <IMPORTDATA> <REQUESTDATA> <TALLYMESSAGE xmlns:UDF="TallyUDF"> <VOUCHER REMOTEID="abcd1" VCHKEY="0000a582:000000e0" VCHTYPE="Payment" ACTION="Create" OBJVIE

这是文件结构:

<BODY>
    <IMPORTDATA>
            <REQUESTDATA>
                <TALLYMESSAGE xmlns:UDF="TallyUDF">
                    <VOUCHER REMOTEID="abcd1" VCHKEY="0000a582:000000e0" VCHTYPE="Payment" ACTION="Create" OBJVIEW="Accounting Voucher View">
                        <ALLLEDGERENTRIES.LIST>
                            <LEDGERNAME>Bank Charges</LEDGERNAME>
                            <AMOUNT>-575.00</AMOUNT>
                        </ALLLEDGERENTRIES.LIST>
                        <ALLLEDGERENTRIES.LIST>
                            <LEDGERNAME>Standard Chartered Bank Ltd-01-5547520-01</LEDGERNAME>
                            <AMOUNT>575.00</AMOUNT>
                        </ALLLEDGERENTRIES.LIST>
                    </VOUCHER>
                </TALLYMESSAGE>
            </REQUESTDATA>
        </IMPORTDATA>
    </BODY>

您可以使用更友好的API来处理xml-

子体
将返回xml文件中任何级别上存在的具有给定名称的所有xml元素

因此,基本上您可以使用
子体
直接用于
LEDGERNAME
元素,并省略

var ledgerNames = doc.Descendants("LEDGERNAME")
                     .Select(element => element.Value);

您可以使用更友好的API来处理xml-

子体
将返回xml文件中任何级别上存在的具有给定名称的所有xml元素

因此,基本上您可以使用
子体
直接用于
LEDGERNAME
元素,并省略

var ledgerNames = doc.Descendants("LEDGERNAME")
                     .Select(element => element.Value);
复制XML(标记全部并单击ctrl+c)。在visual studio中,转到

编辑>过去的特殊>过去的XML作为类

这将把XML结构创建为C#类。
ALLLEDGERENTRIES.LIST
将显示为一个数组。

复制XML(标记全部并单击ctrl+c)。在visual studio中,转到

编辑>过去的特殊>过去的XML作为类

这将把XML结构创建为C#类。
ALLLEDGERENTRIES.LIST
将以数组形式显示

var ledgerNames = doc.Descendants("LEDGERNAME")
                     .Select(element => element.Value);