2009-11-06 232 views
-1

我有以下XML字符串,我需要解析(中斷)。任何機構都知道要使用的代碼是什麼?如果需要,我可以提供我的代碼。解析XML字符串.net

<?xml version='1.0' encoding='ISO-8859-1'?> 
<SystemGenerator-Document> 
    <TN>42</TN> 
    <OC>CR</OC> 
    <HN>738</HN> 
    <USERID>xxx</USERID> 
    <WS>FACTORY</WS> 
    <OBJID>254209</OBJID> 
    <SystemGenerator-Process> 
     <RNO>247989</RNO> 
     <RSNO>1</RSNO> 
     <OBJID>254209</OBJID> 
     <ARR>03.11.2009</ARR> 
     <DEP>21.11.2009</DEP> 
     <NOPAX>2</NOPAX> 
     <RT>1</RT> 
     <SystemGenerator-Person> 
      <ARR>03.11.2009</ARR> 
      <DEP>21.11.2009</DEP> 
      <PCIID>700842</PCIID> 
      <HASPREV>FALSE</HASPREV> 
      <HASSUCC>FALSE</HASSUCC> 
      <NOPAX>1</NOPAX> 
      <SF>N</SF> 
      <GID>535372</GID> 
      <SN>Torres</SN> 
      <CN>Xavier</CN> 
      <LN></LN> 
      <VIP></VIP> 
      <STREET></STREET> 
      <CITY></CITY> 
      <ZIP></ZIP> 
      <COUNTRY></COUNTRY> 
      <STATE></STATE> 
      <AREA></AREA> 
      <PHONE></PHONE> 
      <PHONE2></PHONE2> 
      <FAX></FAX> 
      <FAX2></FAX2> 
      <EMAIL></EMAIL> 
      <EMAIL2></EMAIL2> 
      <TAXID></TAXID> 
      <DOB></DOB> 
      <SEX>0</SEX> 
      <PASSWD></PASSWD> 
      <MATCHCODE></MATCHCODE> 
      <ADMCODEHQ></ADMCODEHQ> 
      <GT>GUEST</GT> 
      <GTD>1</GTD> 
      <GNR>19726</GNR> 
      <GMD>738</GMD> 
      <GDB>0</GDB> 
      <TT>M</TT> 
      <HQGID>0</HQGID> 
      <CREQ>0</CREQ> 
      <CREQSTATE> 
      </CREQSTATE> 
      <SALUTATION></SALUTATION> 
      <TITLE></TITLE> 
      <T-TITLE> 
      </T-TITLE> 
      <CARDS></CARDS> 
      <RN>718</RN> 
      <CAT></CAT> 
      <TG>1A</TG> 
      <MC>64</MC> 
      <SystemGenerator-Package> 
       <FROM>03.11.2009</FROM> 
       <TO>21.11.2009</TO> 
       <SID>AL</SID> 
       <RS>CLG</RS> 
       <SIDT>P</SIDT> 
      </SystemGenerator-Package> 
     </SystemGenerator-Person> 
     <SystemGenerator-Person> 
      <ARR>03.11.2009</ARR> 
      <DEP>21.11.2009</DEP> 
      <PCIID>700843</PCIID> 
      <HASPREV>FALSE</HASPREV> 
      <HASSUCC>FALSE</HASSUCC> 
      <NOPAX>1</NOPAX> 
      <SF>N</SF> 
      <SN>Torres</SN> 
      <CN>Xavier</CN> 
      <RN>718</RN> 
      <CAT></CAT> 
      <TG>1A</TG> 
      <MC>64</MC> 
      <SystemGenerator-Package> 
       <FROM>03.11.2009</FROM> 
       <TO>21.11.2009</TO> 
       <SID>AL</SID> 
       <RS>CLG</RS> 
       <SIDT>P</SIDT> 
      </SystemGenerator-Package> 
     </SystemGenerator-Person> 
    </SystemGenerator-Process> 
    <ORG>[email protected](3244)#4840</ORG> 
</SystemGenerator-Document> 
+0

難道這個字符串來自屬性?或者XML中元素的內容? – Nestor 2009-11-06 14:43:20

+0

正確地格式化xml,以便SO可以顯示它。 – James 2009-11-06 14:47:35

+0

爲什麼這是CW? – 2009-11-06 14:50:41

回答

1

我會建議使用LinqToXml解析XML數據。這裏是一個很好的Sample

樣品

public class XmlDocumentReader 
{ 
    private XDocument xmlDoc = new XDocument(); 
    public XmlDocumentReader(string xml) 
    { 
     xmlDoc.LoadXml(xml); 
    } 

    public void ParseAndSave() 
    { 
     var document = from document in xmlDoc.Element("SystemGenerator-Document"); 
     select new 
     { 
      TC = document.Element("TN").Value; 
      OC = document.Element("OC").Value; 
      HN = document.Element("HN").Value; 
      USERID = document.Element("USERID").Value; 
      ... and so on 
     }; 

     // insert your data into the database 
     // I would assume you have a method called "InsertDocument" or something 
     MyDatabase.InsertDocument(document.TC, 
            document.OC, 
            document.HN, 
            document.USERID, 
            ...); 
    } 
} 
+0

在wiforms中使用linq庫有什麼用?使用System.Linq;它不適合我。第一次使用LINQ也是 – Tony 2009-11-06 18:34:59

+0

System.Linq.Xml – James 2009-11-06 23:50:48