1

我正在尝试为每个循环编写一个循环,该循环遍历 xml 文档的后代,但仅限于满足条件的那些。

我以为我可以使用 where 子句来做到这一点,但我遇到了问题。如果有人可以让我知道这是否真的可行,或者我是否有其他方法可以做到这一点,那就太好了。

我在 VB.Net 中编码到目前为止我的代码是:

For Each Room In xmlDoc.Descendants("Rooms").Where((Room >= Room.Descendants    ("ReservationID").Value = 80154))

 Next

我想循环的 xml 是:

- <NewDataSet xmlns="">
- <Rooms diffgr:id="Rooms1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
  <ReservationID>80154</ReservationID> 
  <Ref /> 
  <ReservationDateTime>5/10/2010 1:35:27 p.m.</ReservationDateTime> 
  <IsCommissionableBooking>False</IsCommissionableBooking> 
  <RoomID>800010</RoomID>  
  <RoomNumber>Double</RoomNumber> 
  </Rooms>
- <Rooms diffgr:id="Rooms2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
  <ReservationID>80154</ReservationID> 
  <Ref /> 
  <ReservationDateTime>5/10/2010 1:35:27 p.m.</ReservationDateTime> 
  <IsCommissionableBooking>False</IsCommissionableBooking> 
  <RoomID>800009</RoomID> 
  <RoomNumber>Motel</RoomNumber> 
  </Rooms>
- <Rooms diffgr:id="Rooms3" msdata:rowOrder="2" diffgr:hasChanges="inserted">
  <ReservationID>80151</ReservationID> 
  <Ref /> 
  <ReservationDateTime>5/10/2010 12:22:16 p.m.</ReservationDateTime> 
  <IsCommissionableBooking>False</IsCommissionableBooking> 
  <RoomID>800009</RoomID> 
  <RoomNumber>Motel</RoomNumber> 
</Rooms>

谢谢

4

1 回答 1

0

看起来您正在尝试使用 C# lambda=>而不是 VB.NETFunction语法。有关语法的更多详细信息,请参阅Lambda 表达式 (Visual Basic)

试试这个代码:

Dim query = xml.Descendants("Rooms").Where(Function(r) r.Descendants("ReservationID").Value = 80154)
For Each room In query
    ' do something with room '
    Console.WriteLine("Room ID: " & room.Element("RoomID").Value)
Next
于 2010-10-05T21:12:11.930 回答