当前位置: 首页 > 工具软件 > xml2array() > 使用案例 >

.NET XML序列化 XmlArrayItem XmlArray XmlElement

高宏峻
2023-12-01

最近在做一个和某网站API对接的项目,需要用到XML格式传递信息,以前一直没有怎么使用XML序列化,觉得比较简单,等到用的时候才发现没有想象中的那么简单。

序列化对象内的数组的时候对方要求格式如下,其中数组我使用了XmlArray和XmlArrayItem

对方要求格式如下

<ORDER>
   <suID>service@ezship.com.tw</suID>
   <orderID>20140318154002</orderID>
   <orderStatus>A05</orderStatus>
   <orderType>1</orderType>
   <orderAmount>1680</orderAmount>
   <rvName><![CDATA[謝無忌]]></rvName>
   <rvEmail>123@ezship.com.tw</rvEmail>
   <rvMobile>0987654321</rvMobile>
   <rvAddr><![CDATA[台北市大安區xx路xx段xx號]]></rvAddr>
   <rvZip>106</rvZip>
   <rtURL>http://yourdomain.domain/direct/program.php</rtURL>
   <webPara>20140318154002-xxx</webPara>
   <Detail>
      <prodItem>1</prodItem>
      <prodNo>A2769-1</prodNo>
      <prodName><![CDATA[格子口袋襯衫]]></prodName>
      <prodPrice>860</prodPrice>
      <prodQty>1</prodQty>
      <prodSpec><![CDATA[白]]></prodSpec>
   </Detail>
   <Detail>
      <prodItem>2</prodItem>
      <prodNo>A2770-2</prodNo>
      <prodName><![CDATA[格子口袋襯衫]]></prodName>
      <prodPrice>820</prodPrice>
      <prodQty>1</prodQty>
      <prodSpec><![CDATA[水藍]]></prodSpec>
   </Detail>
</ORDER>

我的序列化的格式如下:

<ORDER>
   <suID>service@ezship.com.tw</suID>
   <orderID>20140318154002</orderID>
   <orderStatus>A05</orderStatus>
   <orderType>1</orderType>
   <orderAmount>1680</orderAmount>
   <rvName><![CDATA[謝無忌]]></rvName>
   <rvEmail>123@ezship.com.tw</rvEmail>
   <rvMobile>0987654321</rvMobile>
   <rvAddr><![CDATA[台北市大安區xx路xx段xx號]]></rvAddr>
   <rvZip>106</rvZip>
   <rtURL>http://yourdomain.domain/direct/program.php</rtURL>
   <webPara>20140318154002-xxx</webPara>
   <Detail>
    <Detail>
      <prodItem>1</prodItem>
      <prodNo>A2769-1</prodNo>
      <prodName><![CDATA[格子口袋襯衫]]></prodName>
      <prodPrice>860</prodPrice>
      <prodQty>1</prodQty>
      <prodSpec><![CDATA[白]]></prodSpec>
    </Detail>
    <Detail>
      <prodItem>2</prodItem>
      <prodNo>A2770-2</prodNo>
      <prodName><![CDATA[格子口袋襯衫]]></prodName>
      <prodPrice>820</prodPrice>
      <prodQty>1</prodQty>
      <prodSpec><![CDATA[水藍]]></prodSpec>
   </Detail>
 </Detail>
</ORDER>

数组外多了一个<Detail>......</Detail>,某度搜索了很久都没找到解决办法,

最终翻墙google搜索到正解,数组属性使用XmlElement即可得到正确格式

记录下以免以后忘记了!

 类似资料: