最近在做一个和某网站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即可得到正确格式
记录下以免以后忘记了!