xslt转换xml

实现json--> xml --(xlst)--> xml

pom依赖

        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>

转换规则xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" cdata-section-elements="title artist"/>
<!-- match the document root -->
<xsl:template match="/">
<package>
    <xsl:for-each select="o/package">
      <title><xsl:value-of select="abstract"/></title>
      <artist><xsl:value-of select="source"/></artist>
    </xsl:for-each>
</package>
</xsl:template>
</xsl:stylesheet>

java代码

package com.test.main;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;

import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import net.sf.json.JSONSerializer;
import net.sf.json.xml.XMLSerializer;

public class TestMain {
    public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {
        // String jsonString ="{‘package‘:{‘abstract‘:‘<![CDATA[<Empire <>Burlesque>]]>‘,‘source‘:‘<![CDATA[Bob Dylan]]>‘}}";
        String jsonString ="{‘package‘:{‘abstract‘:‘<<>>??<Empire <>Burlesque>‘,‘source‘:‘<![CDATA[Bob Dylan]]>‘}}";
        XMLSerializer xmlSerializer = new XMLSerializer();
        String str = xmlSerializer.write(JSONSerializer.toJSON(jsonString));
        byte[] xml = str.getBytes();
        File name = new File("D:\\tt\\xslt\\source_22.xml");
        FileOutputStream os = new FileOutputStream(name);
        os.write(xml);

        TransformerFactory factory = TransformerFactory.newInstance();
        Source xslt = new StreamSource(new File("D:/tt/xslt/modul_11.xslt"));
        Transformer transformer = factory.newTransformer(xslt);

        Source text = new StreamSource(name);
        transformer.transform(text, new StreamResult(new File("D:/tt/xslt/result/output_11.xml")));
    }
}
时间: 2024-08-15 13:18:42

xslt转换xml的相关文章

通过XSLT转换XML

Hellow,every body.又与大家见面了,哈哈.今天我与大家分享一下XSLT,XSL,XML,XPath.因为项目中有些功能用到了XSLT.XML等技术.所以今天好好研究了一下这几个方面的技术,宋桑说过嘛,要学会总结归纳.所以,要把自己学到东西写出来.一来温习一遍,二来与大家交流学习一下. 在研究这些技术的Demo中,发现有用唱片名字来做例子的.所以,无意中发现了一张唱片,发现了一个歌手.感觉不错,与大家分享一下.Bob Dylan----<Empire Burlesque>,很带感

JaveScript 中使用 XSLT转换XML文档

我们经常将数据存储在XML 中,在展示的时候需要转换为其它的形式,这里介绍使用XSLT 对XML数据进行转换. 要学习XSLT对XML的转换,需要先了解三个文件. 第一个是存储数据的XML文件:employees.xml <?xml version="1.0"?> <employees> <employee title="Software Engineer"> <name>Nicholas C. Zakas</n

.Net中用XSLT转换XML文档

在开发中我们经常用到xml文件作为数据的载体.当我们获取到一个XML文件后常常要将其数据提取出来或者将其转换为另一种格式,此时我们需要用到XSLT. XSLT的全称是Extensible Stylesheet Language Transformations(可扩展样式表转换语言),其最常用的功能就是将XML从一种格式转换为另一种格式.本文中我们将把一个承载Famous People信息的xml文件转换成html文件.在.NET中可以使用XslCompiledTransform类加载XSLT文档

C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml的显示样式,我们先来看如何在xml中引用xsl文件 如下代码示例: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="

xslt 转换 xml

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import ja

使用 XSLT 显示 XML

通过使用 XSLT,您可以向 XML 文档添加显示信息. 使用 XSLT 显示 XML XSLT 是首选的 XML 样式表语言. XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善. 使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML,正如以下的这些例子演示的那样: 查看 XML 文件,XSLT 样式表,查看结果. 下面是此 XML 文件的一个片断. 第二行,<?xml-stylesh

TestLink学习七:TestLink测试用例Excel转换XML工具

最近在整理测试用例,所以想找一个合适的工具来完成对测试需求.测试用例的管理.对比了一翻,发现开源工具中扩展比较好的还属TestLink,而且还可以与JIRA进行对接,这样就引起了我更大的兴趣.加上之前本来就接触过此工具,只是源于各种原因没能深入去研究来着,这次也就是决心于此!于是就找来了Testlink的最新版1.9.3,将其搭建在Ubuntu Server上,很快我们就可以正常方访问了.不过说实话,Testlink界面确实很难看,不过毕竟它不是商业工具,而且可以自己去扩展并定制开发,这就是最大

xStream完美转换XML、JSON

xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换: 它们都完美支持JSON,但是对xml的支持还不是很好.一定程度上限制了对Java对象的描述,不能让xml完全体现到对Java对象的描述.这里将会介绍xStream对JSON.XML的完美支持.xStream不仅对XML的转换非常友好,而且提供annotation注解,可以在JavaBean中完成对xml节点.属性的描述.以及对JSON也支持,只需要提供

[c# 20问] 2.如何转换XML文件

添加System.Xml引用 使用XmlReader转换字符串 DEMO #region Parse Xml private static void ParseXml(string xmlString) { StringBuilder output = new StringBuilder(); using(XmlReader reader= XmlReader.Create(new StringReader(xmlString))) { reader.ReadToFollowing("book&