子xml节点读取问题

时间:2012-02-28 04:16:01

标签: c# 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包含多次出现的标签,我需要找出具有值的所有子节点的值

1 个答案:

答案 0 :(得分: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>);