首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java/DOM:获取节点的XML内容

Java/DOM:获取节点的XML内容
EN

Stack Overflow用户
提问于 2009-01-27 20:04:06
回答 6查看 19.5K关注 0票数 7

我正在使用W3C DOM在Java语言中解析一个XML文件。我陷入了一个特定的问题,我不知道如何获取节点的整个内部XML。

该节点如下所示:

代码语言:javascript
复制
<td><b>this</b> is a <b>test</b></td>

我必须使用什么函数才能获得它:

代码语言:javascript
复制
"<b>this</b> is a <b>test</b>"

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-01-27 20:12:12

您必须使用transform/xslt API,将您的节点用作要转换的节点,并将结果放入新的StreamResult( StringWriter());。请参阅 how-to-pretty-print-xml-from-java

票数 3
EN

Stack Overflow用户

发布于 2010-12-29 04:41:37

我知道这在很久以前就被问过了,但对于下一个搜索的人(今天的我)来说,这适用于JDOM:

代码语言:javascript
复制
JDOMXPath xpath = new JDOMXPath("/td");
String innerXml = (new XMLOutputter()).outputString(xpath.selectNodes(document));

这会将所有子节点的列表传递给outputString,后者将按顺序序列化它们。

票数 4
EN

Stack Overflow用户

发布于 2012-03-13 17:48:50

你对此有何感想?我今天在android上也遇到了同样的问题,但我设法做了一个简单的“序列化程序”。

代码语言:javascript
复制
private String innerXml(Node node){
        String s = "";
        NodeList childs = node.getChildNodes();
        for( int i = 0;i<childs.getLength();i++ ){
            s+= serializeNode(childs.item(i));
        }
        return s;
    }

    private String serializeNode(Node node){
        String s = "";
        if( node.getNodeName().equals("#text") ) return node.getTextContent();
        s+= "<" + node.getNodeName()+" ";
        NamedNodeMap attributes = node.getAttributes();
        if( attributes!= null ){
            for( int i = 0;i<attributes.getLength();i++ ){
                s+=attributes.item(i).getNodeName()+"=\""+attributes.item(i).getNodeValue()+"\"";
            }
        }
        NodeList childs = node.getChildNodes();
        if( childs == null || childs.getLength() == 0 ){
            s+= "/>";
            return s;
        }
        s+=">";
        for( int i = 0;i<childs.getLength();i++ )
            s+=serializeNode(childs.item(i));
        s+= "</"+node.getNodeName()+">";
        return s;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/484995

复制
相关文章

相似问题

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