首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用DocumentBuilderFactory将Xml文档转换为DOM对象

使用DocumentBuilderFactory将Xml文档转换为DOM对象
EN

Stack Overflow用户
提问于 2010-08-04 17:55:09
回答 4查看 6.5K关注 0票数 2

我目前正在修改一段代码,我想知道XML的格式化方式(制表符和空格)是否会影响将其解析为DocumentBuilderFactory类的方式。

本质上,问题是is...can,我向DocumentBuilderFactory传递了一个没有空格的长字符串,或者它是否需要以某种方式格式化?

提前感谢,下面是来自Oracle网站的类定义。

DocumentBuilderFactory类

“定义工厂API,使应用程序能够获得从XML文档生成DOM对象树的解析器。”

EN

Stack Overflow用户

发布于 2010-09-24 22:55:17

文档会有所不同。制表符和新行将转换为文本节点。您可以在DocumentBuilderFactory上使用以下方法消除这些问题:

  • http://download.oracle.com/javase/6/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#setIgnoringElementContentWhitespace(boolean

但是,为了使其正常工作,您必须设置DOM解析器来根据DTD或xml模式验证内容。

或者,您也可以通过编程方式自行删除多余的空格,方法如下:

代码语言:javascript
运行
复制
public static void removeEmptyTextNodes(Node node) {
    NodeList nodeList = node.getChildNodes();
    Node childNode;
    for (int x = nodeList.getLength() - 1; x >= 0; x--) {
        childNode = nodeList.item(x);
        if (childNode.getNodeType() == Node.TEXT_NODE) {
            if (childNode.getNodeValue().trim().equals("")) {
                node.removeChild(childNode);
            }
        } else if (childNode.getNodeType() == Node.ELEMENT_NODE) {
            removeEmptyTextNodes(childNode);
        }
    }
}
票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档