Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Проблема с XML и XPathAPI


Автор: Cross 26.4.2008, 15:04
Сделала DOM парсинг XML-файла. 
Цель - передать все дерево документа как поток в XSP-страничку.

Вот код:

Код

package domparsertest;

import javax.xml.transform.TransformerException;
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;
import org.apache.xpath.XPathAPI;

public class Main {
    
    private static Document doc = null;
    private static Node n = null;
    
    public static void main(String[] args) {
       
    try {
            DOMParser parser = new DOMParser();
            parser.parse("index-text.xml");
            doc = parser.getDocument();
            try {
                Node xe = XPathAPI.selectSingleNode(doc, "root");
                System.out.println(xe);
                } catch (TransformerException ex) {
            }
            
        } catch (Exception ex) {
            System.out.println(ex);
        }
    }
}


Корневая ветсь документа XML называется "root". Но Java всегда возвращает NULL.

Автор: medin_84 17.9.2009, 07:44
возможно
System.out.println(xe.getTextContent());
или getNodeValue()
что в root

вроде зависит от выборки Node xe = XPathAPI.selectSingleNode(doc, "root");

Автор: medin_84 17.9.2009, 08:13
слудеющий код применимо к данному xml ниже работает у меня
Код

try {
    String fxml = application.getRealPath("/WEB-INF/xml/") + "/nav_tools.xml";
            DOMParser parser = new DOMParser();
            parser.parse(fxml);
            Document doc = parser.getDocument();
            try {
                Node n = XPathAPI.selectSingleNode(doc, "menu/title[@lang=\"ru\"]");
                response.getWriter().println(n.getFirstChild().getNodeValue().toString());
            }catch (TransformerException n) {
            }
            
    } catch (Exception n) {
        response.getWriter().println("n=" + n);
    }


Код

<menu>
    <title lang="kz">Деректер</title>
    <title lang="ru">Ресурсы</title>
    <title lang="en">Resources</title>
</menu>


результат обработки = Ресурсы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)