2010-11-25 38 views
2

XML要素からデータを取得するために、XPathで動作する次のJavaコードがあります。表現がtitleで初めて解明されたとき、それは正常に機能します。しかし、次回はcostで、costの値を表示するたびに、「コストを得ることができませんでした」と表示されます。複数のXPath式を実行しようとしたときに何か不足していますか?XPathが正しく機能しない

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 
} 

これは私がオフつもりXML:http://www.woot.com/salerss.aspx

+0

XMLはどのように見えますか? –

+0

試着?:// rss/channel/item/title and // rss/channel/item/pubDate(double // start) – Steven

+0

質問をXMLで更新しました。そして私は//を試しましたが、動作しません。 – Chiggins

答えて

3

例外はあなたが嚥下された何と言っていますか?私はこの例外メッセージがあなたを啓発すると思います。

+0

"org.xml.sax.SAXParseException:予期せぬドキュメントの終了"は、 'e.printMessage() 'で得た例外メッセージです。 – Chiggins

+0

正確です。これは、 'InputSource'が一度だけ読み込まれる可能性があるためです。これは現在消費されています。 – Lucero

+0

ああ、私はそれを知らなかった。それでは、複数のXPathをtatから読み込むのには良い方法でしょうか? – Chiggins

関連する問題