将xml字符串加载到vb.net Web应用程序中易于使用的对象中

时间:2015-10-01 09:20:44

标签: xml vb.net

我已经看过并使用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)  

在我提取了必要的信息后,我需要显示许多酒店,每个房间都可用。

我遇到了以可管理的方式获取数据的问题。

2 个答案:

答案 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)