[英]Java, Simple XML parsing list
我如何用 Java 解析這個列表? 我有從服務器返回的List<Image>
,但我無法獲得單個項目。
<images>
<image>
uploads/posts/2008-10/1225141003_1-21.jpg
</image>
<image>
uploads/posts/2008-10/1225141003_1-22.jpg
</image>
</images>
@Root(name = "圖片") 公共類圖片 {
@ElementList(required=false, inline = true) private List<Image> imageList; public List<Image> getImageList() { return imageList; }
}
@Root(name = "圖像") 公共類圖像 {
//一些代碼......
}
我以這種方式解決了這個問題:
@Root(name = "images")
public class Images {
@ElementList(entry = "image", required=false, inline = true)
private List<String> imageList;
public List<String> getImageList() {
return imageList;
}
}
試試這個:
String inputStreamToString(InputStream is) {
String line = "";
String total = "";
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
try {
while ((line = rd.readLine()) != null) {
total +=line;
}
} catch (IOException e) {
e.printStackTrace();
}
return total;
}
編輯
如果您能夠獲得該 xml:
String responseXML = inputStreamToString(yourXMLResponseFromServer.getEntity().getContent());
為了解釋 XML 文件,我一直使用 org.w3c.dom.Document 接口,它提供類似 Javascript 的文檔修改。 查看oracle網站上的文檔!
聖誕節快樂
使用 DOM 和 Xpath
1 解析你的字符串
String xml="<my_xml/>";
DocumentBuilderFactory builderFactory =DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
2 使用 xpath
XPath xPath = XPathFactory.newInstance().newXPath();
String expression="/images/image";
XPathExpression expr = xpath.compile(expression) ;
NodeList nodes = (NodeList) expr.evaluate(document, XPathConstants.NODESET);
3 迭代
for (int k = 0; k < nodes.getLength(); k++)
{
Node nodeSegment = nodes.item(k);
if (nodeSegment.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nodeSegment;
System.out.println("TEXT CONTENT="+eElement.getTextContent());
選擇:
如果您知道您有 1 或 2 張圖像:
expression="/images/image[1]"; // first one
String value = xPath.evaluate(expression, document);
System.out.println("EVALUATE:"+value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.