Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用visualbasic解析xml文件_Xml_Vb.net_Parsing - Fatal编程技术网

使用visualbasic解析xml文件

使用visualbasic解析xml文件,xml,vb.net,parsing,Xml,Vb.net,Parsing,我正在尝试解析以下示例xml文件。 从文件中获取xrefid=和callout=文本时遇到问题 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE etm PUBLIC "-//IADS//DTD Patriot Publications (patiads4.dtd)//EN" "patiads4.dtd"[]> <etm id="n28_1b0n_pc001" label="1"> <chapter l

我正在尝试解析以下示例xml文件。 从文件中获取xrefid=和callout=文本时遇到问题

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE etm PUBLIC "-//IADS//DTD Patriot Publications (patiads4.dtd)//EN" "patiads4.dtd"[]>
<etm id="n28_1b0n_pc001" label="1">
  <chapter label="1">
    <title>
      INTRODUCTION
    </title>
     <para0.outline>
        <para>
          <xref xrefid="n28_1b0n_wp000100" callout="0001 00 General Information" />
        </para>
     </para0.outline>
     <para0.outline>
        <para>
          <xref xrefid="n28_1b0n_wp000200" callout="0002 00 Nomenclature Cross-Reference" />
        </para>
     </para0.outline>
     <para0.outline>
        <para>
           <xref xrefid="n28_1b0n_wp000300" callout="0003 00 Differences Between Models" />
        </para>
     </para0.outline>
     <para0.outline>
        <para>
           <xref xrefid="n28_1b0n_wp000400" callout="0004 00 Equipment Description" />
        </para>
     </para0.outline>
  </chapter>
</etm>

介绍
这是我正在使用的代码:

   Imports System.IO
   Imports System.Xml

   Public Class Form1
       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

         If (ComboBox1.Text = "") Then 

             MessageBox.Show("No file name entered")

         Else

             If (System.IO.File.Exists(ComboBox1.Text.ToString())) Then

                 Dim document As XmlReader = New XmlTextReader(ComboBox1.Text.ToString())

                 While (document.Read())

                     Dim type = document.NodeType

                     If (type = XmlNodeType.Element) Then

                         If (document.Name = "title") Then
                              xmlTitle.Visible = True
                              xmlTitle.Text = document.ReadInnerXml.ToString()
                         End If
                         If (document.Name.Contains("para")) Then

                              Dim test As String = document.ReadInnerXml.ToString()
                              Dim Doc As New XmlDocument()
                              Doc.LoadXml("<para>" & test & "</para>")

                              Dim root As XmlNode = Doc.FirstChild

                              If root.HasChildNodes Then
                                  Dim _value = root.ChildNodes.Item(0).InnerText.Trim()

                                  xmlRefId1.Visible = True
                                  xmlRefId1.Text = _value
                              End If
                         End If
                     End If
                 End While
             Else
                MessageBox.Show("The filename you selected was not found.")
             End If
         End If
       End Sub
   End Class
Imports System.IO
导入System.Xml
公开课表格1
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
如果(ComboBox1.Text=“”),则
MessageBox.Show(“未输入文件名”)
其他的
如果(System.IO.File.Exists(ComboBox1.Text.ToString()),则
Dim文档作为XmlReader=newXMLTextReader(ComboBox1.Text.ToString())
While(document.Read())
Dim type=document.NodeType
如果(type=XmlNodeType.Element),则
如果(document.Name=“title”),则
xmlttitle.Visible=True
xmlttitle.Text=document.ReadInnerXml.ToString()
如果结束
如果(document.Name.包含(“段落”)),则
Dim测试为String=document.ReadInnerXml.ToString()
Dim Doc作为新的XmlDocument()
Doc.LoadXml(“&test&”)
Dim root作为XmlNode=Doc.FirstChild
如果root.HasChildNodes,则
Dim_value=root.ChildNodes.Item(0).InnerText.Trim()
xmlRefId1.Visible=True
xmlRefId1.Text=\u值
如果结束
如果结束
如果结束
结束时
其他的
Show(“找不到您选择的文件名”)
如果结束
如果结束
端接头
末级

最好使用LINQ to XML API满足您的需要。感谢您的帮助最好使用LINQ to XML API满足您的需要。感谢您的帮助