2013-12-05 2 views
1

У меня есть этот XML:Java Xpath с переменными

<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns="http://purl.org/rss/1.0/"> 
<channel rdf:about="http://www.web.com/news.rss"> 
<items> 
<rdf:Seq> 
    <rdf:li resource="http://www.web.com/news1" /> 
    <rdf:li resource="http://www.web.com/news2" /> 
</rdf:Seq> 
</items> 
</channel> 
<item rdf:about="http://www.web.com/news1"> 
<title>my title</title> 
<link>http://www.web.com/news1.html</link> 
<description> bla bla </description> 
</item> 
<item rdf:about="http://www.web.com/news2"> 
<title>My Title 2</title> 
<link>http://www.web.com/news2.html</link> 
<description> bla bla 2 </description> 
</item> 
</rdf:RDF> 

Вот мой код, чтобы попытаться названием печати от каждого ФРРА: Li

public static void main(String[] args) throws Exception { 
System.setOut(new PrintStream(System.out, true, "Cp850")); 
    XPath xPath = XPathFactory.newInstance().newXPath(); 
    DocumentBuilderFactory factory = 
    DocumentBuilderFactory.newInstance(); 
    DocumentBuilder parser = factory.newDocumentBuilder(); 
    Document doc = parser.parse(args[0]); 

    Element racine = doc.getDocumentElement(); 
     System.out.println("racine: "+ racine); 
    NodeList nl = racine.getElementsByTagName("rdf:li"); 
for (int k = 0; k < nl.getLength(); ++k) { 
    Element e = (Element) nl.item(k); 
    String NewsTitle = e.getAttribute("resource"); 
     System.out.println("from :" + NewsTitle); 
    String NoTitre = xPath.compile("//item[@rdf:about='" + NewsTitle + "']/title").evaluate(doc); 
       System.out.println("Title : "+ NoTitre); 

    } 
} 

Все идет нормально в моем цикле, мой NewsTitle переменная дает мне хороший результат.

Моя проблема моя xpath.Compile не хорошо, мне нужна помощь, чтобы узнать, как назвать мой XPath, чтобы найти название для каждой новости, которые будут дает этот результат:

от: http://www.web.com/news1
Название: бла-бла
от: http://www.web.com/news2
Название: бла-бла-2

Я не в состоянии получить строку жирным шрифтом. (Название: бла-бла)

спасибо

+0

возможно дубликат [Xpath, Java и переменные] (http://stackoverflow.com/questions/20885549/xpath-java-and-variables) –

ответ

-1

Спасибо, что я нашел, наконец, один. Xpath необходимо удалить пространство имен RDF: давая это:

String NoTitre = xPath.compile("//item[@about='" + NouvelleTitre + "']/title").evaluate(doc); 
Смежные вопросы