日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了使用JAXB解析包含<g:id>等元素的XML文檔的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <title>SSS Product Feed</title>
    <link>https://en-ae.sssports.com/</link>
    <description><![CDATA[The largest sports ]]></description>
    <item>
      <g:id>NIKE315122-001</g:id>
      <g:title><![CDATA[Nike Air Force 1 Low 07 Shoe]]></g:title> 
      <g:sport>Lifestyle</g:sport>
    </item>
    <item>
      <g:id>NIKE315122-002</g:id>
      <g:title><![CDATA[Nike Air Force 1 Low 07 Shoe]]></g:title> 
      <g:sport>Lifestyle</g:sport>
    </item>
  </channel>
</rss>

這是我要讀取和分析的示例XML文件…

我有這樣的Java類…

 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Rss {


     @XmlElement(name="channel")
     private Channel channel;


     public Channel getChannel() {
         return channel;
     }

     public void setChannel(Channel channel) {
         this.channel = channel;
     }

}

另一個類是

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="item")
public class Item {

     @XmlElement(name="g:id")
     private String id;


     public String getId() {
         return id;
     }
     public void setId(String id) {
         this.id = id;
     }

,最后一個Item類是

public class Channel {


    private List<Item> itemList;

    @XmlElement(name="item")
    public List<Item> getItemList() {
        return itemList;
    }

    public void setItemList(List<Item> itemList) {
        this.itemList = itemList;
    }
}

這就是我正在嘗試做的事情..請幫助我做錯了什么,因為我從XML中提取的所有值都返回空…..

推薦答案

您的RssChannel類在我看來還可以。
問題出在Item類中,尤其是其具有命名空間的元素中。

<g:id>元素建模時,不得使用@XmlElement(name = "g:id")
相反,您需要使用@XmlElement(name = "id", namespace = "http://base.google.com/ns/1.0")。
這與XML文件中給定的命名空間定義xmlns:g="http://base.google.com/ns/1.0"相對應。

順便說一句:@XmlRootElement類上不需要@XmlRootElement
您只需要在Rss類上使用它,因為<rss>是XML根元素。

完整的Item類如下所示:

@XmlAccessorType(XmlAccessType.FIELD)
public class Item {

    @XmlElement(name = "id", namespace = "http://base.google.com/ns/1.0")
    private String id;

    @XmlElement(name = "title", namespace = "http://base.google.com/ns/1.0")
    private String title;

    @XmlElement(name = "sport", namespace = "http://base.google.com/ns/1.0")
    private String sport;

    // public getters and setters (omitted here for brevity)
} 

您可以在此處找到更多背景信息:

XML Namespaces大體
OracleJAXB tutorial一般用于JAXB
@Xml... annotations的Javadoc
有關更多信息,只需在Internet上搜索JAXB教程命名空間

這篇關于使用JAXB解析包含&lt;g:id&gt;等元素的XML文檔的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:amp gt JAXB 元素 包含 文檔 解析
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定