我目前正在研究一個隱含XML提要解析(Atom 2005)的項目,我正在使用羅馬來做到這一點。用羅馬將SyndFeed轉換爲SyndEntry
我目前有兩種XML結構可以解析。
第一種類型:
<?xml version="1.0" encoding="UTF-8"?>
<feed
xmlns="http://www.w3.org/2005/Atom"
xml:base="..." >
<id>...</id>
<title type="text" >...</title>
<entry xmlns="http://www.w3.org/2005/Atom" >
<id>...</id>
</entry>
<entry xmlns="http://www.w3.org/2005/Atom" >
<id>...</id>
</entry>
...
</feed>
(一個進料,含多個條目)
第二式:
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" >
<id>...</id>
</entry>
(一個條目,但它不包含在「飼料「)
我的目標是製作一個bean」MyEntry「,它解析輸入XML並進入形成。我的理想是有一個構造函數(以SyndEntry作爲參數)。
我這樣做:
public MyEntry(SyndEntry e) {
_entry = e;
}
我可以得到 「SyndEntry」 對象時,我得到第一類型的XML飼料:
SyndFeedInput feed_input = new SyndFeedInput();
...
SyndFeed feed = feed_input.build(xml_file);
for (SyndEntry e : feed.getEntries()) {
// I can get SyndEntries from here
}
- >但與第二類型的XML ,沒有「feed」容器,我找不到任何直接從XML構建SyndEntry的方法(如「SyndEntryInput」?)。即使所有信息都可訪問,我會得到一個「SyndFeed」而不是「SyndEntry」。因此,我正在尋找一種方法將SyndFeed轉換爲SyndEntry(或反向),使用超類(我無法找到SyndEntry和SyndFeed共有的任何超類)或專用轉換器。我現在的解決方案是創建兩個構造函數(一個取「SyndFeed」,另一個取「SyndEntry」),但它很醜,因爲我有一個方法「getSyndData()」,它理想地返回用於構造的對象,有用的檢索通用信息(即:getSyndData()的getTitle())
任何幫助或想法,將不勝感激
po可以重複使用[使用ROME獲取SyndEntry的XML字符串值](http://stackoverflow.com/questions/16187928/getting-xml-string-value-of-syndentry-with-rome) – fglez