2012-02-28 84 views
-1

需要帮助才能读取xml文件。我有我想读,并在下面的数据库存储一个XML文件是我的XML代码子xml节点读取问题

<?xml version="1.0" encoding="UTF-8"?> 
<Document> 
    <SctiesSttlmTxStsAdvc> 
    <Id> 
     <Id>ACK0000000000004</Id> 
     <CreDtTm> 
       <Dt>2011-08-26</Dt> 
     </CreDtTm> 
    </Id> 
    <TxId> 
     <AcctOwnrTxId>TCP-CMF001-000000004</AcctOwnrTxId> 
    </TxId> 
    <PrcgSts> 
     <AckdAccptd> 
     <NoSpcfdRsn>NORE</NoSpcfdRsn> 
     </AckdAccptd> 
    </PrcgSts> 
    <MsgOrgtr> 
     <PrtryId> 
     <Id>068001</Id> 
     <Issr>BMSC</Issr> 
     </PrtryId> 
    </MsgOrgtr> 
    <MsgRcpt> 
     <PrtryId> 
     <Id>056001</Id> 
     <Issr>BMSC</Issr> 
     </PrtryId> 
    </MsgRcpt> 
    </SctiesSttlmTxStsAdvc> 
    <SctiesSttlmTxStsAdvc> 
    </SctiesSttlmTxStsAdvc> 
</Document> 

上述XML包含发生多时间标签,我需要找出哪些是有价值的所有子节点的值

+0

你可以使用LINQ to XML在内存中加载XML(http://msdn.microsoft.com/en-us/library/bb387098。 aspx)并且枚举子节点。 – Daryl 2012-02-28 04:29:11

+0

它的框架1.1所以我不能使用任何新的点网络组件,我曾试图加载XML在doc.LoadXML和得到一个错误System.Xml.XmlException:在根级别的数据是无效的。第1行,第1个位置也是xml文件激活到b大。 xml文件将包含 多次,我必须读取上述标记之间的子节点值n存储在数据库中 – SeeSharp 2012-02-29 03:03:15

回答

1
I think it should get you all the child nodes from your root node 


XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("nameofyourfile.xml"); 

     XmlNode root = doc.FirstChild; 

     //Display the contents of the child nodes. 
     if (root.HasChildNodes) 
     { 
      for (int i=0; i<root.ChildNodes.Count; i++) 
      { 
      if(root.ChildNodes[i].InnerText!="") 
      { 
      Console.WriteLine(root.ChildNodes[i].InnerText); 
       } 
      } 
     } 
     } 
    } 

你可以直接加载XM这样

doc.LoadXml(<Document> 
    <SctiesSttlmTxStsAdvc> 
    <Id> 
     <Id>ACK0000000000004</Id> 
     <CreDtTm> 
       <Dt>2011-08-26</Dt> 
     </CreDtTm> 
    </Id> 
    <TxId> 
     <AcctOwnrTxId>TCP-CMF001-000000004</AcctOwnrTxId> 
    </TxId> 
    <PrcgSts> 
     <AckdAccptd> 
     <NoSpcfdRsn>NORE</NoSpcfdRsn> 
     </AckdAccptd> 
    </PrcgSts> 
    <MsgOrgtr> 
     <PrtryId> 
     <Id>068001</Id> 
     <Issr>BMSC</Issr> 
     </PrtryId> 
    </MsgOrgtr> 
    <MsgRcpt> 
     <PrtryId> 
     <Id>056001</Id> 
     <Issr>BMSC</Issr> 
     </PrtryId> 
    </MsgRcpt> 
    </SctiesSttlmTxStsAdvc> 
    <SctiesSttlmTxStsAdvc> 
    </SctiesSttlmTxStsAdvc> 
</Document>); 
+0

嗨冷告诉,谢谢你的回复后应用上述代码即时通讯得到一个错误System.Xml.XmlException:根级别的数据无效。第1行,位置1.当我做xmldoc.LoadXML(路径) – SeeSharp 2012-02-28 06:07:23

+0

你可以在负载,但整个文件 – 2012-02-28 16:13:55

+0

hi..finally我有我的输出我用xmltextreader和阅读textelement通过检查节点类型 感谢您的答复...每一个:) – SeeSharp 2012-03-02 04:07:24