java - XML 和 DOM 获取#text 输出

标签 java xml dom

我正在尝试通过遍历子节点列表来读取 Collada XML 文件,并且每个其他输出都读取#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 );
    }
}

最佳答案

“#text”只是在文本节点上调用 getNodeName() 方法的结果。 (如果您查看 org.w3c.dom.Node 的 API 文档,您将会看到这一点。)如果您想要节点的实际文本内容,您可以使用 getNodeValue() 方法。

如果您不希望有任何文本节点,请不要忘记即使是少量的空格,如换行符,也会被视为文本。

关于java - XML 和 DOM 获取#text 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287686/

相关文章:

java - 修改主事件处理程序

java - 调用 finishAffinity() 不会破坏 android 应用程序或 Activity 。即使重新启动应用程序, Activity 的数据仍然存在

javascript - 将 jQuery 用于 Dom 大纲。

javascript - 对话框关闭后从 DOM 中删除 SweetAlert2

javascript - 通过许多请求在 javascript 中使用相同的 http session

java - 从 java 代码连接 MS Access 数据源

java - 批量运行xpath表达式

c# - 在数以千计的 xml 文件中搜索

xml - XSLT:排序路径跟踪

javascript - 通过只搜索一次DOM来初始化多个js控件