java - 获取节点原始文本

标签 java dom

如何获取节点值及其子节点?例如,我将以下节点解析为 dom Document实例:

<root>
    <ch1>That is a text with <value name="val1">value contents</value></ch1>
</root>

我使用 xpath 选择 ch1 节点。现在我需要获取它的内容,即 <ch1> 之间包含的所有内容。和</ch1> ,例如That is a text with <value name="val1">value contents</value> .

我该怎么做?

最佳答案

我发现以下使用转换的代码片段,它几乎给出了我想要的。可以通过改变输出方法来调整结果。

public static String serializeDoc(Node doc) {
        StringWriter outText = new StringWriter();
        StreamResult sr = new StreamResult(outText);
        Properties oprops = new Properties();
        oprops.put(OutputKeys.METHOD, "xml");
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer t = null;
        try {
            t = tf.newTransformer();
            t.setOutputProperties(oprops);
            t.transform(new DOMSource(doc), sr);
        } catch (Exception e) {
            System.out.println(e);
        }
        return outText.toString();
    }

关于java - 获取节点原始文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873393/

相关文章:

javascript - 是否可以使用 JavaScript 删除输入类型=文件选择?

使用非常小的代码时,Java-Image 不会绘制到屏幕上

java - 如何更好地将丰富的字符串内容和图像保存到数据库中?

javascript - 清理 javascript dom 脚本?

javascript - 为什么 getElementsByTagName() 总是返回一个数组?

javascript - 按类名计数器在 javascript 中不起作用

javascript - 将 html-nodes 作为键存储在数组中

java - spring 单元测试上下文配置

java - 如何以任意顺序使用字符串和整数组合作为输入?

java - Heroku 找不到 Postgres JDBC 驱动程序