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

标签 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 解析它。我以字符串格式获取它。我如何直接映射到java类变量或bean? 谢谢。

最佳答案

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

在 DOM 文档中加载 XML 字符串后,您可以调用方法 getElementsByTagName 来检索特定标签,然后使用 getNodeValue 迭代它们提取标签内的值并使用 getAttribute 提取属性。

您无法在运行时轻松地将其映射到具有 desider 字段的 Java 类,但您可以使用 getRooms() 等简单方法将元素的解析和提取包装在类中

>

关于java - 使用 JAXB 将 XML 解析为 java 变量(bean),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13658876/

相关文章:

android - 谁能给我解释一下 "app:layout_behavior="@string/appbar_scrolling_view_behavior”?

java - Jacoco 从未调用过 "mvn install"。手动触发时(("mvn jacoco:report"),表示执行数据文件丢失

java - API 测试 - 在使用 json 的 resassured 时获取方括号中的值,导致断言失败

java - 测试多线程代码或确保代码是线程安全的指南

xml - 使用xslt删除基于xml中多个属性的重复节点

javascript - jquery、json 和 xml

java - 在 XML 文件中添加新节点

python xml xpath查询使用带有ns的标签和属性

java - 泛型,V 扩展 T,即使类型不兼容也不会出错

python - 使用 ElementTree 时出现未定义实体错误