2015-12-25 6 views
-8

Как разобрать этот список на Java? У меня есть Список, возвращающийся с сервера, но я не могу получить один элемент.Java, Simple XML синтаксический список

<images> 
    <image> 
     uploads/posts/2008-10/1225141003_1-21.jpg 
    </image> 
    <image> 
     uploads/posts/2008-10/1225141003_1-22.jpg 
    </image> 
</images> 

@root (имя = "Изображение") общественный класс изображения {

@ElementList(required=false, inline = true) 
private List<Image> imageList; 

public List<Image> getImageList() { 
    return imageList; 
} 

}

@root (имя = "образ") общественного класс Image {

// Некоторый код .......

+0

что вы хотите разобрать? –

+0

, пожалуйста, посмотрите на него снова –

ответ

0

Я решил эту проблему следующим образом:

@Root(name = "images") 
public class Images { 

    @ElementList(entry = "image", required=false, inline = true) 
    private List<String> imageList; 

    public List<String> getImageList() { 
     return imageList; 
    } 
} 
0

Попробуйте это:

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; 
} 

EDIT

Если вы можете получить, что XML:

String responseXML = inputStreamToString(yourXMLResponseFromServer.getEntity().getContent()); 
+0

Просто посмотрите код еще раз, пожалуйста, отредактируйте это –

+0

Проверьте изменения. – Alvin

0

интерпретировать XML-файлы, которые я всегда использовал w3c.org .dom.Document Interface, который предлагает Javascript, например, модификацию документа. Проверьте Documentation на сайте оракула!

0

С Рождеством

использование 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); 
Смежные вопросы