如果在windows下的编辑器中获取了一个编辑器的输入,则将编辑器的输入内容转换为Element的Text存储,在jdom中会做一个转换,里面主要做了一步操作,就是将原来文本的内容中回车换行转换为回车换行。(实际上是将“\n”转换为换行符,但是他这里没有考虑windows下平台的问题,因为windows前面还多了一个"\r")
看jdom中换行转换的代码:
public String escapeElementEntities(String str) {
if (escapeOutput == false) return str;
StringBuffer buffer;
int ch, pos;
String entity;
EscapeStrategy strategy = currentFormat.escapeStrategy;
buffer = null;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
pos = i;
switch(ch) {
case '<' :
entity = "<";
break;
case '>' :
entity = ">";
break;
case '&' :
entity = "&";
break;
case '\r' :
entity = "
";
break;
case '\n' :
entity = currentFormat.lineSeparator;
break;
default :
if (strategy.shouldEscape((char) ch)) {
//make sure what we are escaping is not the
//beginning of a multi-byte character.
if(Verifier.isHighSurrogate((char) ch)) {
//this is a the high of a surrogate pair
i++;
if (i < str.length()) {
char low = str.charAt(i);
if(!Verifier.isLowSurrogate(low)) {
throw new IllegalDataException("Could not decode surrogate pair 0x" +
Integer.toHexString(ch) + " / 0x" + Integer.toHexString(low));
}
ch = Verifier.decodeSurrogatePair((char) ch, low);
} else {
throw new IllegalDataException("Surrogate pair 0x" +
Integer.toHexString(ch) + " truncated");
}
}
entity = "&#x" + Integer.toHexString(ch) + ";";
}
else {
entity = null;
}
break;
}
if (buffer == null) {
if (entity != null) {
// An entity occurred, so we'll have to use StringBuffer
// (allocate room for it plus a few more entities).
buffer = new StringBuffer(str.length() + 20);
// Copy previous skipped characters and fall through
// to pickup current character
buffer.append(str.substring(0, pos));
buffer.append(entity);
}
}
else {
if (entity == null) {
buffer.append((char) ch);
}
else {
buffer.append(entity);
}
}
}
// If there were any entities, return the escaped characters
// that we put in the StringBuffer. Otherwise, just return
// the unmodified input string.
return (buffer == null) ? str : buffer.toString();
}
看以上的代码可以看到,jdom只对"\n"认为是换行,但是'\r'却不做任何处理,这一点很奇怪。。。
分享到:
相关推荐
本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...
Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...
**Java与XML:JDOM解析XML的详细指南** 在Java编程中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,用于存储结构化数据。为了处理XML文档,开发者可以使用多种库,其中之一就是JDOM。JDOM是...
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...
JDOM是Java中一个专门用来解析XML的库,它提供了方便的API来读取、修改和创建XML文档。在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三...
**JDOM解析XML详解** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件等领域。在Java中,有多种解析XML的库,其中之一就是JDOM。JDOM是一个专为Java设计的XML API,它...
Java中的JDOM库是用于解析XML文档的一种强大的工具。它提供了简单、高效的API来读取、修改和创建XML文件。本篇文章将深入探讨如何利用JDOM解析XML文件,以及在这个过程中涉及的关键知识点。 首先,我们需要了解XML...
本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本概念。JDOM提供了一组Java对象来表示XML文档,包括Element(元素)、Attribute(属性)、Text(文本...
1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. 通过`Document`对象访问XML结构,如获取根元素、...
JDOM是Java领域中一个专门用来解析XML的库,它提供了一种高效且易于使用的API来处理XML文档。在这个小实例中,我们将深入探讨如何使用JDOM解析XML文件。 首先,我们需要引入JDOM的依赖。在Java项目中,如果你使用的...
JDOM是Java中专门用来解析和操作XML的一个库,它提供了一种高效且方便的方式来处理XML文档。本实例将深入讲解如何使用JDOM进行XML解析。 首先,我们需要在项目中引入JDOM的类库。JDOM官方网站提供了不同版本的JDOM ...
在Java中,解析XML有多种方法,其中之一就是使用JDOM库。JDOM,全称Java Document Object Model,是专门为Java设计的一个解析XML的API,它提供了方便的构建和操作XML文档的方法。 JDOM的优势在于它完全基于Java,...
Java 使用 JDOM 解析 XML 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...
下面我们将详细探讨JDOM解析本地XML的相关知识点。 首先,JDOM的核心概念包括`Element`、`Attribute`和`Document`。`Element`代表XML文档中的元素节点,`Attribute`则是元素的属性,而`Document`则封装了整个XML...
在Java中,有多种库可以用来解析XML,其中之一便是JDOM。JDOM是一个专为Java设计的XML处理库,它提供了一种高效且方便的方式来读取、修改和生成XML文档。 ### JDOM解析XML的基本概念 1. **DOM(Document Object ...
总的来说,JDOM-1.0是Java程序员处理XML的强大工具,通过其简洁的API,使得XML的解析、操作和生成变得简单易行。无论是在构建复杂的应用程序还是进行数据交换,JDOM都能提供可靠的解决方案。在实际开发中,根据项目...
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...
### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...