2010-11-25 17 views
2

Ich habe den folgenden Java-Code, der mit XPath arbeitet, um Daten von XML-Elementen zu erhalten. Wenn der Ausdruck das erste Mal in title ausgewertet wird, funktioniert es wie es sollte. Aber das nächste Mal, in cost, immer wenn ich den Wert cost anzeigen, ist es nur "Konnte nicht Kosten". Fehle ich etwas beim Versuch, mehrere XPath-Ausdrücke auszuführen?XPath funktioniert nicht richtig

XPathFactory factory = XPathFactory.newInstance(); 
XPath xpath = factory.newXPath(); 
XPathExpression exp; 
InputSource inputSource = new InputSource(new StringReader(woot_xml)); 
title = "Could not get title"; 
cost = "Could not get cost"; 
try { 
    exp = xpath.compile("/rss/channel/item/title"); 
    title = exp.evaluate(inputSource); 
    exp = xpath.compile("/rss/channel/item/pubDate"); 
    cost = exp.evaluate(inputSource); 
} catch (XPathExpressionException e) { 
    // Do nothing for now 
} 

Dies ist die XML ich weg von gehe: http://www.woot.com/salerss.aspx

+0

Nun, wie sieht das XML aus? –

+0

versucht ?: // rss/channel/item/title und // rss/channel/item/pubDate (double // beim Start) – Steven

+0

Ich habe meine Frage mit dem XML aktualisiert. Und ich habe versucht das // aber es funktioniert nicht. – Chiggins

Antwort

3

Was bedeutet die Ausnahme sagen, was Sie schlucken? Ich denke, dass diese Ausnahmebotschaft Sie aufklären wird.

+0

"org.xml.sax.SAXParseException: Unerwartetes Ende des Dokuments" ist die Ausnahmebedingungsnachricht, die ich mit 'e.printMessage()' – Chiggins

+0

Exactly erhalten habe. Das liegt daran, dass die 'InputSource' nur einmal gelesen werden darf ... und jetzt verbraucht wird. – Lucero

+0

Oh, das wusste ich nicht. Was wäre eine gute Möglichkeit, mehrere XPath-Lesevorgänge von tat auszuführen? – Chiggins