我已经看过并使用SimpleXML使用php完成了一些简单的xml任务,它不辜负它的名字。
我想知道是否有办法将xml文档加载到对象中,类似于SimpleXML函数的做法,但对于vb.net。
我对vb.net的教程使用System.Xml,并将节点列表和节点作为不同的变量类型,使得xml数据检索看起来像一场噩梦。
任何帮助都将不胜感激。
编辑:
我需要能够解析多种不同格式的xml,其中一些我还没有看到过。我目前的部分xml如下:
=INDEX(B:B, COUNTA(B:B) -D1 +1, 1)
=OFFSET(B:B, COUNTA(B:B) -D1, 0, 1, 1)
在我提取了必要的信息后,我需要显示许多酒店,每个房间都可用。
我遇到了以可管理的方式获取数据的问题。
答案 0 :(得分:1)
作为参考,请始终从文档开始 XElement
使用发布的XML我创建了一个文字用作演示:
Dim xe As XElement = <root xmlns:xsi="http://example.com/ns1">
<AuditData>
<ProcessTime>2128</ProcessTime>
<Timestamp>2014-05-06 11:35:52.042</Timestamp>
<RequestHost>127.0.0.1</RequestHost>
<ServerName>SIS</ServerName>
<ServerId>01</ServerId>
<SchemaRelease>2005/06</SchemaRelease>
<HydraCoreRelease>2.0.201405051526</HydraCoreRelease>
<HydraEnumerationsRelease>1.0.201405051526</HydraEnumerationsRelease>
<MerlinRelease>N/A</MerlinRelease>
</AuditData>
<PaginationData currentPage="1" totalPages="10"/>
<ServiceHotel xsi:type="ServiceHotel" availToken="1T30xpRg+eHNFvzJSa38uwbd">
<DirectPayment>Y</DirectPayment>
<ContractList>
<Contract>
<Name>NRF-TODOS1~</Name>
<IncomingOffice code="1"/>
<Classification code="NRF">Non refundable rate</Classification>
</Contract>
</ContractList>
<DateFrom date="20140706"/>
<DateTo date="20140708"/>
<Currency code="EUR">Euro</Currency>
<PackageRate>N</PackageRate>
<TravelAgent>N</TravelAgent>
<HotelInfo xsi:type="ProductHotel">
<Code>1499</Code>
<Name>Amic Gala</Name>
<ImageList>
<Image>
<Type>jpg</Type>
<Order>1</Order>
<VisualizationOrder>1</VisualizationOrder>
<Url>http://www.hotelbeds.com/giata/small/00/001499/001499a_hb_w_002.jpg</Url>
</Image>
<Image>
<Type>jpg</Type>
<Order>2</Order>
<VisualizationOrder>2</VisualizationOrder>
<Url>http://www.hotelbeds.com/giata/small/00/001499/001499a_hb_r_005.jpg</Url>
</Image>
</ImageList>
<Category type="SIMPLE" code="3EST" shortname="3*">3 STARS</Category>
<Destination type="SIMPLE" code="PMI">
<Name>Majorca</Name>
<ZoneList>
<Zone type="SIMPLE" code="74">Ca'n Pastilla</Zone>
</ZoneList>
</Destination>
<ChildAge ageFrom="0" ageTo="12"/>
<Position latitude="39.53611999999999682132" longitude="2.71932000000000018147"/>
</HotelInfo>
<AvailableRoom>
<HotelOccupancy>
<RoomCount>1</RoomCount>
<Occupancy>
<AdultCount>2</AdultCount>
<ChildCount>0</ChildCount>
</Occupancy>
</HotelOccupancy>
<HotelRoom SHRUI="azRX8L17pO1vJQ18i8A7+w==" availCount="10" onRequest="N">
<Board type="SIMPLE" code="RO-E10" shortname="RO">ROOM ONLY</Board>
<RoomType type="SIMPLE" code="DBT-E10" characteristic="ST">Double or Twin STANDARD</RoomType>
<ProductType>P</ProductType>
<FreeNights>0</FreeNights>
<Price>
<Amount>94.560</Amount>
<SellingPrice mandatory="Y">94.560</SellingPrice>
<NetPrice>78.960</NetPrice>
<Commission>16.500</Commission>
</Price>
<CancellationPolicies>
<CancellationPolicy amount="94.560" dateFrom="20140505" time="2359"/>
</CancellationPolicies>
</HotelRoom>
</AvailableRoom>
<AvailableRoom>
<HotelOccupancy>
<RoomCount>1</RoomCount>
<Occupancy>
<AdultCount>2</AdultCount>
<ChildCount>0</ChildCount>
</Occupancy>
</HotelOccupancy>
<HotelRoom SHRUI="82LafAHrfGSTNGqn9I45+g==" availCount="10" onRequest="N">
<Board type="SIMPLE" code="BB-E10" shortname="BB">BED AND BREAKFAST</Board>
<RoomType type="SIMPLE" code="DBT-E10" characteristic="ST">Double or Twin STANDARD</RoomType>
<ProductType>P</ProductType>
<FreeNights>0</FreeNights>
<Price>
<Amount>98.560</Amount>
<SellingPrice mandatory="Y">98.560</SellingPrice>
<NetPrice>82.300</NetPrice>
<Commission>16.500</Commission>
</Price>
<CancellationPolicies>
<CancellationPolicy amount="98.560" dateFrom="20140505" time="2359"/>
</CancellationPolicies>
</HotelRoom>
</AvailableRoom>
</ServiceHotel></root>
要获取服务器名称,代码将是
Dim s As String = xe.<AuditData>.<ServerName>.Value
答案 1 :(得分:0)
您还没有提供有关XML的内容,您想要用它做什么等信息。最简单的方法是使用XElement类,如果您的操作很简单。
给定加载xml文件的路径
Dim xe As XElement = XElement.Load(PathToXMLfile)
保存文件
xe.Save(PathToXMLfile)