1. 在解析的过程中,此版本用dom4j解析
test.xml中的encoding="GBK"
test.xsl中的encoding="GBK"
两个文件中的encoding是相同的
但经过jaxp的TransFormer转换后却输出成了UTF_8编码
java 代码
- Document document = DocumentHelper.parseText(xmldoc.trim());
-
- TransformerFactory factory = TransformerFactory.newInstance();
-
-
-
-
- Transformer transformer = factory.newTransformer(new StreamSource(stylesheet));
- Properties props = transformer.getOutputProperties();
- props.setProperty(OutputKeys.ENCODING,"GBK");
- props.setProperty(OutputKeys.METHOD,"html");
- props.setProperty(OutputKeys.VERSION,"4.0");
-
-
- transformer.setOutputProperties(props);
-
-
-
-
- DocumentSource docSource = new DocumentSource(document);
- StringWriter strWriter = new StringWriter();
-
- StreamResult docResult =new StreamResult(strWriter) ;
- transformer.transform(docSource, docResult);
-
-
-
-
- System.out.println();
- String target = null;
- StringBuffer xmlSource = new StringBuffer();
-
- System.out.println("strWriter"+strWriter.toString());
通过TransFormerFactory中的参数:
1. StreamSource(String styleSheetFilePath)获取源样式文件,接受一个String对象,此处加载的styleSheetFilePath为*.xslt文件,xml样式文件,为xml转换作准备
2. TransFormer转换xml+xsl为html对象的时候,需要两个参数
2.1.DocumentSource(Document doc)此处获取xml文档对象
2.2.StreamResult(StringWriter strWriter)此处的输出对象,可以为任意的writer对象,但用StringWriter可以更容易些,输出自己想的html文件
分享到:
相关推荐
第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素 110 4.7 匹配节点的模式 111 4.8 mode...
使用JAXP解析XML文档的步骤大致如下: 1. 加载解析器工厂:`javax.xml.parsers.DocumentBuilderFactory`或`javax.xml.parsers.SAXParserFactory`。 2. 创建解析器:通过工厂的`newDocumentBuilder()`或`newSAXParser...
在Java中,处理XML和XSL转换主要依赖于Java API for XML Processing(JAXP),它包括了DOM(Document Object Model)、SAX(Simple API for XML)和XSLT等接口和类。在这个例子中,主要使用了JAXP的XSLT部分。 下面...
第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素 110 4.7 匹配节点的模式 111 4.8 mode...
3. **XML和XSL转换**: `returnXml`方法实现了利用XSL样式表将XML内容转换为新的XML字符串。它同样使用`TransformerFactory`创建`Transformer`,但这次是通过`DOMSource`对象将XML内容传递给`transform`方法,而...
第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素 110 4.7 匹配节点的模式 111 4.8 mode...
第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素 110 4.7 匹配节点的模式 111 4.8 mode...
JAXP提供了三个主要接口:DOM(Document Object Model)用于解析XML,SAX(Simple API for XML)用于事件驱动的XML解析,以及Transformer接口,用于执行XSLT转换。 XSLT转换过程通常包括以下步骤: 1. 解析XML源...
JAXP(Java API for XML Processing)是一组 Java 接口,用于解析和处理 XML 文档。 #### 五、IBM WebSphere Application Developer 介绍 **5.1 WebSphere Studio 产品家族** WebSphere Studio 是一个集成开发...
在Java中,我们可以借助Java API for XML Processing (JAXP) 来实现XSLT转换,它提供了对XML解析和XSLT转换的支持。 首先,我们需要理解XML和XSLT的基本概念。XML(eXtensible Markup Language)是一种标记语言,...
6. **错误处理**:在转换过程中可能会遇到各种错误,例如样式表语法错误、XML文档结构不正确等,因此需要对异常进行适当的捕获和处理。 #### 示例代码片段 ```java import javax.xml.transform.TransformerFactory...
三、JAXP解析XML 1. **SAX解析**: 使用`SAXParserFactory`创建`SAXParser`,然后通过`parse()`方法解析XML文件。解析过程中,实现`DefaultHandler`或`ContentHandler`接口来处理解析事件。 2. **DOM解析**: 使用`...
5. JAXP(Java API for XML Processing):JAXP是Java平台上的XML处理API,它提供了处理XML的接口,包括解析器(用于读取XML文档)、Transformer(用于XSL转换)和Validator(用于验证XML文档)。JAXP使得Java开发者...
### 案例2:使用SAX或DOM解析XML 除了使用DOM,我们还可以选择SAX解析器来处理大型XML文件,因为它具有更好的性能。以下是使用SAX解析器的示例: ```java import org.xml.sax.XMLReader; import org.xml.sax....
6. **TransformerFactory和Transformer类**:在JAXP中,`TransformerFactory`用于创建`Transformer`实例,`Transformer`则执行实际的XSL转换。`OutputKeys`类用于设置转换后的输出属性,如编码格式。 7. **Apache ...
1. **DOM解析**:DOM(Document Object Model)是W3C推荐的一种解析XML的标准方式,它将XML文档映射为一个树形结构,开发者可以通过API遍历和修改这个结构。 2. **SAX解析**:SAX(Simple API for XML)是另一种...
JAXP允许开发者使用SAX解析器来监听XML解析过程中触发的事件,如开始元素、结束元素等。 3. **DOM解析**:Document Object Model (DOM)是另一种解析模型,它将XML文档加载到内存中形成一棵节点树。JAXP的`...
在Java中,使用JAXP解析XML通常涉及以下步骤: 1. 引入JAXP相关库,如`javax.xml.parsers`包。 2. 创建解析器工厂,例如`DocumentBuilderFactory`或`SAXParserFactory`。 3. 使用工厂生成解析器对象,如`...
JAXP提供了解析XML文档、创建XML文档和执行XPath查询的功能。而JAXB则用于对象与XML之间的自动转换,实现对象到XML的序列化和XML到对象的反序列化。 在这个示例项目中,可能包含了以下几个关键知识点: 1. **XML...
在Java中,解析XML主要有两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中形成一棵树状结构,允许开发者遍历和修改整个文档。这种方式适用于小规模的XML文件,...