Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDOM:如何避免&#除息的;在漂亮的打印输出?_Java_Xml_Jtextpane_Jdom_Jdom 2 - Fatal编程技术网

Java JDOM:如何避免&#除息的;在漂亮的打印输出?

Java JDOM:如何避免&#除息的;在漂亮的打印输出?,java,xml,jtextpane,jdom,jdom-2,Java,Xml,Jtextpane,Jdom,Jdom 2,如何避免 在我的XML输出中 JDOM在方法的javadoc中谈到了这一点 对于这个问题,请假设我只得到一个必须序列化的XML文档。XML元素文本可能包含来自数据库、UI组件、浏览器、程序等的\r、\n和\r\n的任意组合 是否可以将JDOM配置为只写\r\n,而不写&xD 这是JDOM的一个特长还是其他XML库的行为都一样?我必须检查一下 到目前为止,我唯一的想法是迭代整个文档,并删除任何元素的任何文本属性中出现的\r。如果这确实是我唯一的选择,我也会对这样做的正确和可读的方式感兴趣 我

如何避免

在我的XML输出中

JDOM在方法的javadoc中谈到了这一点

对于这个问题,请假设我只得到一个必须序列化的XML文档。XML元素文本可能包含来自数据库、UI组件、浏览器、程序等的
\r
\n
\r\n
的任意组合

是否可以将JDOM配置为只写
\r\n
,而不写
&xD

这是JDOM的一个特长还是其他XML库的行为都一样?我必须检查一下

到目前为止,我唯一的想法是迭代整个文档,并删除任何元素的任何文本属性中出现的
\r
。如果这确实是我唯一的选择,我也会对这样做的正确和可读的方式感兴趣

我的另一个想法是清理输出:
xml.replace(
;“,”)

例子 输出

第1行和第xD行;
第2行
上下文 我遇到这种情况是因为JTextPane.getText()有时返回的文本只有
\n
,有时返回的文本是
\r\n
。JTextPane也有一些非常疯狂的线端逻辑。请参阅(搜索
EndOfLineStringProperty
)。

您非常强调的是,这里的答案是“否”

只要在输入字符串中看到“\r”,它就会用“ ;”替换它。使用setLineSeparator只会更改“\n”转换为的内容


如果调用:
format.setLineSeparator(LineSeparator.NONE),会发生什么情况

没错,我不相信这种行为对任何人都有用,所以我希望我错过了一些东西。使用“\r\n”以外的任何行分隔符都不会在输出中获得windows分隔符。
  public static void main(String[] args) throws Exception
  {
    JTextPane pane = new JTextPane();
    pane.setText("line 1\r\nline 2");
    //    pane.setText("line 1\nline 2");
    Element element = new Element("el");
    element.setText(pane.getText());

    Format format = Format.getPrettyFormat();
    format.setLineSeparator("\r\n");
    StringWriter writer = new StringWriter();
    new XMLOutputter(format).output(new Document(element), writer);
    System.out.println(writer.toString());
  }
    <?xml version="1.0" encoding="UTF-8"?>
    <el>line 1&#xD;
    line 2</el>