sambeanyu
2010-08-23 10:40
浏览 796
已采纳

使用DOM4J生成XML文件的换行以及特殊字符问题

使用DOM4J生成XML文件,节点内容如何换行,'\n'不行 在输出的节点内容中,有"<" 字符,我希望保留,但是却转换成了转移字符 < ,如何能阻止这种转换?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wazhouqian 2010-08-23 11:17
    已采纳

    使用\n是可以换行的,要输出<等字符用addCDATA方法,代码如下

    [code="java"]public static void main(String[] args) throws Exception
    {
    Document doc = DocumentFactory.getInstance().createDocument();

        Element root = DocumentFactory.getInstance().createElement("root");
        doc.add(root);
    
        Element test = DocumentFactory.getInstance().createElement("test");
        test.addCDATA("<>\\%^^&*()asdfasd\nfadf");
        root.add(test);
    
        OutputFormat format = new OutputFormat();
        format.setEncoding("UTF-8");
        format.setNewlines(true);
    
        XMLWriter writer = new XMLWriter(System.out, format);
        writer.write(doc);
    }[/code]
    

    输入结果如下:

    [code="java"]
    <![CDATA[<>\%^^&*()asdfasd
    fadf]]>
    [/code]

    点赞 打赏 评论
  • oyj7454103 2010-08-23 14:52

    首先:
    Attribute.setEscapeText(false);可以实现避免转义
    就不会解析你那写特殊字符了
    其次:
    addCDATA("<>\%^^&*()asdfasd\nfadf"); 也是可以的

    点赞 打赏 评论

相关推荐 更多相似问题