使用JAXB将XML解析为java变量(bean)

时间:2012-12-01 11:16:04

标签: java xml xml-parsing jaxb

使用我的应用程序处理服务器响应。我把这些东西作为字符串的响应。

<Body>
  <HotelRQ xmlns="urn:Hotel_Search">
<POS>
         <Source Username='USERNAME' Password='PASSWORD' PropertyID='PROPERTYID' />
</POS>
<AvailRequests>
     <AvailRequest>
      <StayDateRange Start='2009-09-05T12:00:00' End='2009-09-06T12:00:00'/>
      <RoomStays>
            <RoomStay> <!—for Room 1->
                <GuestCounts>
                    <GuestCount Count='2'/>
                </GuestCounts>
                <ChildCounts> 
                    <ChildAge Age='10'/>
                    <ChildAge Age='09'/>
                </ChildCounts>
            </RoomStay>

          </RoomStays>
          <SearchCriteria>
        <Criterion>
        <HotelRef HotelCityName='CITY' HotelName='' Area='' Attraction='' Rating=''/>
        <Sorting Preference='2'/>
                                             <ResponseType Compact="Y"/>
        </Criterion>
          </SearchCriteria>
        </AvailRequest>
      </AvailRequests>
    </HotelRQ>
</Body>

我可以使用jaxb吗?

我正在使用此文件来解析我在服务器响应中获得的内容。我正在使用JAXB解析它。我用String格式得到它。我怎么能直接映射到java类变量或bean? 感谢名单。

1 个答案:

答案 0 :(得分:0)

您可以看到此问题:How do I load an org.w3c.dom.Document from XML in a string?

在DOM文档中加载XML字符串后,您可以调用方法getElementsByTagName以检索特定标记,然后使用getNodeValue对其进行迭代,以提取标记内的值和getAttribute提取属性。

您无法在运行时使用desider字段轻松将其映射到Java类,但您可以使用getRooms()

等简单方法将元素的解析和提取包装在类中