我如何阅读特定的XML文件部分-VB.Net

时间:2020-11-02 21:08:41

标签: xml vb.net xml-parsing

请查看以下XML

<MessageHeader>
   <Master branch_name="ABCD" ref_date="2020-09-23 11:43:46" refno="1">
      <mbl_no>1234566</mbl_no>
      <mbl_date>2020-08-25 00:00:00</mbl_date>
      <agent_code>XXXXX</agent_code>
      <agent_name>XXXX YYYYY</agent_name>
      <carrier_code>1234</carrier_code>
      <carrier_name>XXXXX</carrier_name>
      <pol_code>XXX1234</pol_code>
      <pol_name>XXXX,YYYY</pol_name>
      <HouseBill> 
        <House slno="1" house_no="XXDEL233695">
          <shipper_code>3023233324</shipper_code>
          <shipper_name>..Shipper Name...</shipper_name>
          <shipper_add1>... Address 1... </shipper_add1>
          <shipper_add2>... Address 2...</shipper_add2>
          <shipper_add3/>
          <shipper_add4/>
        </House>
     </HouseBill>
   </Master>
</MessageHeader>


我正在尝试使用以下代码将这些信息读入数据集:

Dim xmlFile As XmlReader
Dim importFileName As String = "C:\107.xml"
xmlFile = XmlReader.Create(importFileName, New XmlReaderSettings())
Dim ds As New DataSet
ds.ReadXml(xmlFile)

这对我来说很好,我可以这样访问列:

Dim shipperName As String = ds.tables("House").rows(x).Item("shipper_name").tostring()

我的问题是如何从父节点访问slno和house_no之类的项目?

谢谢

1 个答案:

答案 0 :(得分:0)

没有数据集

    Dim xmlFile As XElement
    Dim importFileName As String = "C:\107.xml"
    ' xmlFile = XElement.Load(importFileName)

    'for testing use litersl
    xmlFile = <MessageHeader>
                  <Master branch_name="ABCD" ref_date="2020-09-23 11:43:46" refno="1">
                      <mbl_no>1234566</mbl_no>
                      <mbl_date>2020-08-25 00:00:00</mbl_date>
                      <agent_code>XXXXX</agent_code>
                      <agent_name>XXXX YYYYY</agent_name>
                      <carrier_code>1234</carrier_code>
                      <carrier_name>XXXXX</carrier_name>
                      <pol_code>XXX1234</pol_code>
                      <pol_name>XXXX,YYYY</pol_name>
                      <HouseBill>
                          <House slno="1" house_no="XXDEL233695">
                              <shipper_code>3023233324</shipper_code>
                              <shipper_name>..Shipper Name...</shipper_name>
                              <shipper_add1>... Address 1... </shipper_add1>
                              <shipper_add2>... Address 2...</shipper_add2>
                              <shipper_add3/>
                              <shipper_add4/>
                          </House>
                      </HouseBill>
                  </Master>
              </MessageHeader>

    Dim shipperName As String = xmlFile.<Master>.<HouseBill>.<House>.<shipper_name>.Value
    Dim slno As String = xmlFile.<Master>.<HouseBill>.<House>.@slno
    Dim house_no As String = xmlFile.<Master>.<HouseBill>.<House>.@house_no

用于生产

    Dim xmlFile As XElement
    Dim importFileName As String = "C:\107.xml"
    xmlFile = XElement.Load(importFileName)

    Dim shipperName As String = xmlFile.<Master>.<HouseBill>.<House>.<shipper_name>.Value
    Dim slno As String = xmlFile.<Master>.<HouseBill>.<House>.@slno
    Dim house_no As String = xmlFile.<Master>.<HouseBill>.<House>.@house_no
相关问题