0

我正在尝试生成一个列表(字符串)以用作下拉列表的数据源。我已经这样做了很多次,但是这个版本并没有像往常那样将这些项目分开。

这是一个xml示例

<fueltypes>
<fuel>
  <type>Marine Diesel NY Harbor</type>
  <dbheader>NYMarineDiesel</dbheader>
</fuel>
<fuel>
  <type>ULSD NY Harbor</type>
  <dbheader>NYULSD</dbheader>
</fuel>
</fueltypes>

这是功能

Public Shared Function GetFuelTypes(ddlControl As Control) As List(Of String)
    Dim doc As New XmlDocument()

    'Load XML from the file into XmlDocument object
    doc.Load("H:\OtherDataFiles\dataXML.xml") 'this needs to be changed to the server path
    Dim root As XmlNode = doc.DocumentElement

    'Select all nodes with the tag paramter indicated by the nodestring variable
    Dim nodeList As XmlNodeList = root.SelectNodes("fueltypes")
    Return (From node As XmlNode In nodeList Select node.InnerText).ToList()
End Function 

他们被绑定到下拉列表,如下所示

 'load the fuel types into the dropdownlist
    ddlFuelTypes.DataSource = GetFuelTypes()
    ddlFuelTypes.DataBind()
    ddlFuelTypes.SelectedIndex = 1

下拉菜单在一行中显示所有项目

4

1 回答 1

0

您需要完全限定nodeList,以便获得包含所需文本的子元素,例如

Dim nodeList As XmlNodeList = root.SelectNodes("/fueltypes/fuel/type")

或者,您需要遍历nodeList并阅读您需要的元素,例如

Dim nodeList As XmlNodeList = root.SelectNodes("/fueltypes/fuel")

For Each fuelNode In nodeList
    Dim fuelType = fuelNode.ChildNodes.Item(0).InnerText
于 2012-09-01T00:19:32.450 回答