<?xml version="1.0" encoding="utf-8"?><Envelope xmlns="http://www.intentia.com/MBM" xmlns:env="http://www.intentia.com/MBM_Envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.intentia.com/MBM ">
<Header>
<env:delivery>
<env:to>
<env:address>002176117</env:address>
</env:to>
<env:from>
<env:address>PRDN</env:address>
</env:from>
<env:reliability>
<env:sendReceiptTo/>
<env:receiptRequiredBy/>
</env:reliability>
</env:delivery>
<env:properties>
<env:identity>8cc83f91-6292-4b09-b8a3-ab8340d428e6</env:identity>
<env:sentAt>2014-05-06T03:23:10+01:00</env:sentAt>
<env:expiresAt/>
<env:topic>http://www.intentia.com/MBM/</env:topic>
</env:properties>
<env:manifest>
<env:reference uri="#850@4010">
<env:description>Doc Name Descr</env:description>
</env:reference>
</env:manifest>
<env:process>
<env:type>0</env:type>
<env:instance/>
<env:handle/>
</env:process>
</Header>
<Body>
<X12850>
<ST>
<e01_0143>850</e01_0143>
<e02_0329>0001</e02_0329>
</ST>
<BEG>
<e01_0353>00</e01_0353>
<e02_0092>NE</e02_0092>
<e03_0324>5050820</e03_0324>
<e05_0373>20140506</e05_0373>
</BEG>
<CUR>
<e01_0098>BY</e01_0098>
<e02_0100>USD</e02_0100>
</CUR>
<FOB>
<e01_0146>PU</e01_0146>
<e02_0309>WH</e02_0309>
<e03_0352>DE1</e03_0352>
</FOB>
<DTM>
<e01_0374>002</e01_0374>
<e02_0373>20140506</e02_0373>
</DTM>
<TD5>
<e01_0133>B</e01_0133>
<e04_0091>A</e04_0091>
<e05_0387>Z14 FEDEX INTL ECONOMY - EX</e05_0387>
</TD5>
<TD4>
<e01_0152>ZZZ</e01_0152>
<e04_0352>200189</e04_0352>
</TD4>
<LOOP_N1_g005>
<N1>
<e01_0098>BY</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>1202DE1</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_N1_g005>
<N1>
<e01_0098>PR</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>DE1</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_N1_g005>
<N1>
<e01_0098>SU</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>VIC082</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_N1_g005>
<N1>
<e01_0098>SN</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>NBR</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_PO1_g011>
<PO1>
<e01_0350>1</e01_0350>
<e02_0330>45</e02_0330>
<e03_0355>EA</e03_0355>
<e04_0212>13.2800</e04_0212>
<e05_0639>PE</e05_0639>
<e06_0235>VN</e06_0235>
<e07_0234>G120077LA1</e07_0234>
<e08_0235>IN</e08_0235>
<e09_0234>G00770323000001</e09_0234>
<e12_0235>KL</e12_0235>
<e13_0234>C</e13_0234>
</PO1>
<LOOP_PID_g013>
<PID>
<e01_0349>F</e01_0349>
<e05_0352>12 GSK 77 FS-FDA-A</e05_0352>
</PID>
</LOOP_PID_g013>
<DTM>
<e01_0374>002</e01_0374>
<e02_0373>20140506</e02_0373>
</DTM>
</LOOP_PO1_g011>
<LOOP_PO1_g011>
<PO1>
<e01_0350>2</e01_0350>
<e02_0330>10</e02_0330>
<e03_0355>EA</e03_0355>
<e04_0212>53.4600</e04_0212>
<e05_0639>PE</e05_0639>
<e06_0235>VN</e06_0235>
<e07_0234>G140077LA1</e07_0234>
<e08_0235>IN</e08_0235>
<e09_0234>G00770355000001</e09_0234>
<e12_0235>KL</e12_0235>
<e13_0234>C</e13_0234>
</PO1>
<LOOP_PID_g013>
<PID>
<e01_0349>F</e01_0349>
<e05_0352>14 GSK 77 FS-A</e05_0352>
</PID>
</LOOP_PID_g013>
<DTM>
<e01_0374>002</e01_0374>
<e02_0373>20140506</e02_0373>
</DTM>
</LOOP_PO1_g011>
<LOOP_CTT_g031>
<CTT>
<e01_0354>2</e01_0354>
</CTT>
</LOOP_CTT_g031>
<SE>
<e01_0096>1</e01_0096>
<e02_0329>0001</e02_0329>
</SE>
</X12850>
</Body>
</Envelope>格式化一下
1.DOM,一次性读入整个XML文档,构建整个文档的结构树
2.SAX,局部解析,边读入边解析建议使用dom4j进行XML解析。
http://blog.csdn.net/duanzi_peng/article/details/24018431
http://msdn.microsoft.com/zh-cn/library/bb387098.aspx
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx如果只是取得某个字段的值,使用linq to Xml 就是XDocument
http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument(v=vs.110).aspx
ds.ReadXml("test.xml"); 你看一下ds中的内容,对应取出你要的值,很容易 //ST
string s = ds.Tables["st"].Rows[0][0].ToString(); //850
string s1 = ds.Tables["st"].Rows[0][1].ToString(); //0001 //BEG
string s2 = ds.Tables["BEG"].Rows[0][0].ToString(); //00
string s3 = ds.Tables["BEG"].Rows[0][1].ToString(); //Ne
string s4 = ds.Tables["BEG"].Rows[0][2].ToString(); //5050820
string s5 = ds.Tables["BEG"].Rows[0][3].ToString(); //20140506
…………。
循环部分如何处理啊? <LOOP_N1_g005>
<N1>
<e01_0098>SU</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>VIC082</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_N1_g005>
<N1>
<e01_0098>SN</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>NBR</e04_0067>
</N1>
</LOOP_N1_g005>
循环部分如何处理啊? <LOOP_N1_g005>
<N1>
<e01_0098>SU</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>VIC082</e04_0067>
</N1>
</LOOP_N1_g005>
<LOOP_N1_g005>
<N1>
<e01_0098>SN</e01_0098>
<e03_0066>ZZ</e03_0066>
<e04_0067>NBR</e04_0067>
</N1>
</LOOP_N1_g005>
for (int i = 0; i < ds.Tables["N1"].Rows.Count; i++)
{ string s11 = ds.Tables["N1"].Rows[i][0].ToString();
string s12 = ds.Tables["N1"].Rows[i][1].ToString();
string s13 = ds.Tables["N1"].Rows[i][2].ToString();
}