【发布时间】:2018-03-24 18:25:36
【问题描述】:
我正在尝试使此函数返回此分支 ID 的 7 个 BranchHours.childnodes 的(列表/多数组),我可以在我的代码隐藏页面中使用一些代码来调用它。
这是 xml 文件的一部分(BranchesInfo)
<BranchInfo>
<BranchId>db</BranchId>
<Name></Name>
<ShortName></ShortName>
<ImageUrl></ImageUrl>
<BranchHours>
<Hours>
<DayOfWeek>Sunday</DayOfWeek>
<Open>12:00</Open>
<Close>5:00</Close>
</Hours>
<Hours>
<DayOfWeek>Monday</DayOfWeek>
<Open>10:00</Open>
<Close>8:00</Close>
</Hours>
<Hours>
<DayOfWeek>Tuesday</DayOfWeek>
<Open>10:00</Open>
<Close>8:00</Close>
</Hours>
<Hours>
<DayOfWeek>Wednesday</DayOfWeek>
<Open>10:00</Open>
<Close>8:00</Close>
</Hours>
<Hours>
<DayOfWeek>Thursday</DayOfWeek>
<Open>10:00</Open>
<Close>6:00</Close>
</Hours>
<Hours>
<DayOfWeek>Friday</DayOfWeek>
<Open>10:00</Open>
<Close>6:00</Close>
</Hours>
<Hours>
<DayOfWeek>Saturday</DayOfWeek>
<Open>12:00</Open>
<Close>5:00</Close>
</Hours>
</BranchHours>
</BranchInfo>
代码
'app_code function below
Public Shared Function MyFunc(ByVal branchCode As String) As List(Of String)
Dim URLString As String = "url/branchesTesting.xml"
Dim xmlDoc As XDocument = XDocument.Parse(URLString)
XDocument.Load(URLString)
Dim labelMan As List(Of String)
Dim x As Integer = (0) 'looping variable
' Dim i As Integer = 1
Dim branchid = xmlDoc.XPathSelectElements("/BranchesInfo/BranchInfo[BranchId='" & branchCode & "']/BranchHours/Hours")
'Dim varList As New List(Of String)
Dim Items = From BranchHours In xmlDoc.XPathSelectElements("/BranchesInfo/BranchInfo[BranchId='" & branchCode & "']/BranchHours/Hours") _
Select DayOfWeek = (BranchHours.Elements("DayOfWeek").Value),
Open = (BranchHours.Elements("Open").Value), _
Close = (BranchHours.Elements("Close").Value)
' Dim lists = xmlDoc.Root.Elements("BranchHours").[Select](Function(element) element.Value).ToList()
For Each Hours In Items
' For i As Integer = 0 To Items.Count - 1
' lists = labelMan
labelMan = "<div>DayOfWeek:" & Hours.DayOfWeek & "Open:" & Hours.Open & "Close: " & Hours.Close & "</div>" ' ----- error Error 34 Value of type 'String' cannot be converted to 'System.Collections.Generic.List(Of String)'.
' Else
' i += 1
' End If
labelMan = labelMan
'Next
Next
' If labelMan = "" Then
'labelMan = "No Results."
'End If
Return labelMan
End Fuction
Public Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Call BranchHours.branchHours.MyFunc("dr")
Label1.Text = BranchHours.branchHours.MyFunc("dr") ' ----- Error Error 35 Value of type 'System.Collections.Generic.List(Of String)' cannot be converted to 'String'.
End Sub
理想的结果
Day of the Week Open Close
(0)Sunday 12:00 5:00
(1)Monday 10:00 8:00
(2)Tuesday 10:00 8:00
(3)Wednesday 10:00 8:00
(4)Thursday 10:00 6:00
(5)Friday 10:00 6:00
(6)Saturday 10:00 5:00
--- (i) 将不可见,以供将来参考结果。
如果您需要任何其他信息,请告诉我。谢谢!
【问题讨论】:
-
您没有向我们展示
MyFunc是如何声明的,但看起来它期望List(Of String)作为参数,而您传递的是String(“博士”), -
myfunc 在我的 app_code 文件夹中声明 - 如果我错了,请纠正我,但它需要一个字符串(“dr”)并从重新运行中寻找返回值是一个列表(字符串)标签人?公共共享函数 MyFunc(ByVal branchCode As String) As List(Of String) 和我在页面“代码”后面的代码 Public Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Call BranchHours.branchHours.MyFunc("dr ") Label1.Text = BranchHours.branchHours.MyFunc("dr") -- 从“List(Of String)”类型到“String”类型的转换无效。结束子
标签: asp.net xml vb.net multidimensional-array