XML и DOM получают вывод текста - PullRequest
3 голосов
/ 26 ноября 2010

Я пытаюсь прочитать XML-файл Collada, просматривая список дочерних узлов, и каждый другой вывод читает #text.О чем это?Мой код:

public void runTest() {
    File file = new File( "test.dae" );
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    try {
        builder = factory.newDocumentBuilder();
    }
    catch( ParserConfigurationException error ) {
        System.out.println( "--ParserConfigurationException: " + error.getMessage() ); return;
    }
    Document document = null;
    try {
        document = builder.parse( file );
    }
    catch( IOException error ) {
        System.out.println( "--IOException: " + error.getMessage() ); return;
    }
    catch( SAXException error ) {
        System.out.println( "--SAXException: " + error.getMessage() ); return;
    }
    Node node = document.getDocumentElement();
    String node_name = node.getNodeName();
    System.out.println( node_name );
    NodeList node_list = node.getChildNodes();
    for( int iterator = 0; iterator < node_list.getLength(); iterator++ ) {
        Node child_node = node_list.item( iterator );
        String child_node_name = child_node.getNodeName();
    System.out.println( "-- " + child_node_name );
    }
}

1 Ответ

4 голосов
/ 26 ноября 2010

"# text" - это просто результат вызова метода getNodeName () на узле Text. (Как вы увидите, если вы посмотрите документацию API для org.w3c.dom.Node.) Если вы хотите получить фактическое текстовое содержимое узла, вы должны использовать метод getNodeValue ().

И если вы не ожидали, что будут какие-либо текстовые узлы, не забывайте, что даже небольшие пробелы, например символы новой строки, обрабатываются как текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...