`

JAXP解析XML+XSL转换过程

    博客分类:
  • JAVA
阅读更多

1. 在解析的过程中,此版本用dom4j解析

         test.xml中的encoding="GBK"

         test.xsl中的encoding="GBK"

   两个文件中的encoding是相同的

   但经过jaxp的TransFormer转换后却输出成了UTF_8编码

java 代码
  1. Document document = DocumentHelper.parseText(xmldoc.trim());   
  2. //           load the transformer using JAXP   
  3.             TransformerFactory factory = TransformerFactory.newInstance();   
  4.                
  5.                 //XSLT样式表是静态存储在文件中的,   
  6.                 //javax.XML.transform.Templates接口把它们解析好了进内存里缓存起来   
  7.             //Templates templates = factory.newTemplates();   
  8.                 Transformer transformer = factory.newTransformer(new StreamSource(stylesheet));   
  9.                 Properties props = transformer.getOutputProperties();   
  10.                 props.setProperty(OutputKeys.ENCODING,"GBK");   
  11.                 props.setProperty(OutputKeys.METHOD,"html");   
  12.                 props.setProperty(OutputKeys.VERSION,"4.0");   
  13.                    
  14. //              props.list(System.out);   
  15.                 transformer.setOutputProperties(props);   
  16.              //now lets style the given document   
  17. //              DOMProcessingInstruction processingInstruction = new DOMProcessingInstruction("xml-stylesheet", "type='text/xsl' href='hello.xsl'");   
  18. //              document.add(processingInstruction);   
  19. //              System.out.println(document.asXML());   
  20.                 DocumentSource docSource = new DocumentSource(document);   
  21.                 StringWriter strWriter = new StringWriter();   
  22.                 //DocumentResult docResult = new DocumentResult();   
  23.                 StreamResult docResult =new StreamResult(strWriter) ;   
  24.                 transformer.transform(docSource, docResult);   
  25.                 // return the transformed document   
  26. //              Document docTrans = docResult.getDocument();   
  27. //              String writer = docResult.toString();   
  28.                 //strWriter = (StringWriter) docResult.getWriter();   
  29.                 System.out.println();   
  30.                 String target = null;   
  31.                 StringBuffer xmlSource = new StringBuffer();   
  32.                    
  33.                 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文件

    

分享到:
评论

相关推荐

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第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...

    XML_JAVA指南.rar_WORKING_java Tutorial_java xml_jaxp_xml

    使用JAXP解析XML文档的步骤大致如下: 1. 加载解析器工厂:`javax.xml.parsers.DocumentBuilderFactory`或`javax.xml.parsers.SAXParserFactory`。 2. 创建解析器:通过工厂的`newDocumentBuilder()`或`newSAXParser...

    javaxml,xsl,html文件转换借鉴.pdf

    在Java中,处理XML和XSL转换主要依赖于Java API for XML Processing(JAXP),它包括了DOM(Document Object Model)、SAX(Simple API for XML)和XSLT等接口和类。在这个例子中,主要使用了JAXP的XSLT部分。 下面...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第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...

    javaxml,xsl,html文件转换.pdf

    3. **XML和XSL转换**: `returnXml`方法实现了利用XSL样式表将XML内容转换为新的XML字符串。它同样使用`TransformerFactory`创建`Transformer`,但这次是通过`DOMSource`对象将XML内容传递给`transform`方法,而...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第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...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第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...

    XSLTrans.rar_html xml 转换

    JAXP提供了三个主要接口:DOM(Document Object Model)用于解析XML,SAX(Simple API for XML)用于事件驱动的XML解析,以及Transformer接口,用于执行XSLT转换。 XSLT转换过程通常包括以下步骤: 1. 解析XML源...

    IBM--The XML Files - Development of XML XSL Applications Using WebSphere Studio Version 5 2002

    JAXP(Java API for XML Processing)是一组 Java 接口,用于解析和处理 XML 文档。 #### 五、IBM WebSphere Application Developer 介绍 **5.1 WebSphere Studio 产品家族** WebSphere Studio 是一个集成开发...

    java_xslt转换xml

    在Java中,我们可以借助Java API for XML Processing (JAXP) 来实现XSLT转换,它提供了对XML解析和XSLT转换的支持。 首先,我们需要理解XML和XSLT的基本概念。XML(eXtensible Markup Language)是一种标记语言,...

    如何在Java中将XML文档转换成HTML文档.pdf

    6. **错误处理**:在转换过程中可能会遇到各种错误,例如样式表语法错误、XML文档结构不正确等,因此需要对异常进行适当的捕获和处理。 #### 示例代码片段 ```java import javax.xml.transform.TransformerFactory...

    Working with XML

    三、JAXP解析XML 1. **SAX解析**: 使用`SAXParserFactory`创建`SAXParser`,然后通过`parse()`方法解析XML文件。解析过程中,实现`DefaultHandler`或`ContentHandler`接口来处理解析事件。 2. **DOM解析**: 使用`...

    xml编程ppt数据岛ddt xsl dom jax xml编程 编程编程编程编程编程

    5. JAXP(Java API for XML Processing):JAXP是Java平台上的XML处理API,它提供了处理XML的接口,包括解析器(用于读取XML文档)、Transformer(用于XSL转换)和Validator(用于验证XML文档)。JAXP使得Java开发者...

    java 调用 xsl一些案例

    ### 案例2:使用SAX或DOM解析XML 除了使用DOM,我们还可以选择SAX解析器来处理大型XML文件,因为它具有更好的性能。以下是使用SAX解析器的示例: ```java import org.xml.sax.XMLReader; import org.xml.sax....

    第15章-用Servlet与XSL结合开发WEB应用程序教学课件PPT文档.pptx

    6. **TransformerFactory和Transformer类**:在JAXP中,`TransformerFactory`用于创建`Transformer`实例,`Transformer`则执行实际的XSL转换。`OutputKeys`类用于设置转换后的输出属性,如编码格式。 7. **Apache ...

    Java and XML(英文第三版)_java_xml_birdsolc_源码

    1. **DOM解析**:DOM(Document Object Model)是W3C推荐的一种解析XML的标准方式,它将XML文档映射为一个树形结构,开发者可以通过API遍历和修改这个结构。 2. **SAX解析**:SAX(Simple API for XML)是另一种...

    Sun 的 Java API for XML 语法分析

    JAXP允许开发者使用SAX解析器来监听XML解析过程中触发的事件,如开始元素、结束元素等。 3. **DOM解析**:Document Object Model (DOM)是另一种解析模型,它将XML文档加载到内存中形成一棵节点树。JAXP的`...

    解析JAXP

    在Java中,使用JAXP解析XML通常涉及以下步骤: 1. 引入JAXP相关库,如`javax.xml.parsers`包。 2. 创建解析器工厂,例如`DocumentBuilderFactory`或`SAXParserFactory`。 3. 使用工厂生成解析器对象,如`...

    XML操作文档及使用例子程序(一个完整的例子)

    JAXP提供了解析XML文档、创建XML文档和执行XPath查询的功能。而JAXB则用于对象与XML之间的自动转换,实现对象到XML的序列化和XML到对象的反序列化。 在这个示例项目中,可能包含了以下几个关键知识点: 1. **XML...

    Java XML编程指南

    在Java中,解析XML主要有两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中形成一棵树状结构,允许开发者遍历和修改整个文档。这种方式适用于小规模的XML文件,...

Global site tag (gtag.js) - Google Analytics