【问题标题】:vb.net Reading an XML file with XmlReadervb.net 使用 XmlReader 读取 XML 文件
【发布时间】:2015-07-23 05:32:26
【问题描述】:

我有一个这样的 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<Dice>
  <Type name="D3">
    <Sides>3</Sides>
  </Type>
  <Type name="D4">
    <Sides>4</Sides>
  </Type>
  <Type name="D6">
    <Sides>6</Sides>
  </Type>
  <Type name="D8">
    <Sides>8</Sides>
  </Type>
  <Type name="D10">
    <Sides>10</Sides>
  </Type>
  <Type name="D12">
    <Sides>12</Sides>
  </Type>
  <Type name="D20">
    <Sides>20</Sides>
  </Type>
  <Type name="D%">
    <Sides>100</Sides>
  </Type>
</Dice>

我想读取 XML 文件并在组合框中列出名称属性,但下面的代码不会在窗口窗体应用程序的表单加载时插入属性名称。

Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Set the titles for the application
    Dim title As String = "Dice Bag"
    Me.Text = title

    'Loads the XML file
    Dim xmlDiceBag As XmlReader = XmlReader.Create("dicebag.xml")
    Do While xmlDiceBag.Read()
        If xmlDiceBag.NodeType = XmlNodeType.Element AndAlso xmlDiceBag.Name = "type" Then
            cbDiceType.Items.Add(xmlDiceBag.GetAttribute(0))
        End If
    Loop
End Sub

感谢任何帮助...

【问题讨论】:

  • 我猜它是xmlDiceBag.Name = "Type"(查看标记它是Type 而不是type

标签: xml vb.net visual-studio-2013


【解决方案1】:

检查是否区分大小写:应该是这样。

xmlDiceBag.Name = "Type"

获取属性的值:

cbDiceType.Items.Add(xmlDiceBag.GetAttribute("name"))

【讨论】:

  • 把代码中的"Type"改成"type",GetAttribute(0)改成GetAttribute("name")还是不​​行
【解决方案2】:

检查这是否->(xmlDiceBag.Name = "type" ) should be this -&gt; ( xmlDiceBag.Name = "Type")

检查 T 应该是大写。

【讨论】:

  • 把代码中的"Type"改成"type",GetAttribute(0)改成GetAttribute("name")还是不​​行
【解决方案3】:

解决方案是项目和 XML 文件命名相同,而应用程序没有读取哪个 dicebag.xml。将 xml 文件的名称更改为 dice.xml 并完美运行...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2013-09-08
    • 2023-03-30
    • 2016-12-05
    • 1970-01-01
    相关资源
    最近更新 更多