Description: |
XMl to other xml convert
|
Code 1: |
package com.kartik.demo;
import java.io.File;
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;
public class XmlToOtherXmlConvert {
public static void main(String[] args) throws IOException,
URISyntaxException, TransformerException {
TransformerFactory factory = TransformerFactory.newInstance();
Source xslt = new StreamSource(new File("d:\\transform.xslt"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File("d:\\input.xml"));
transformer.transform(text,
new StreamResult(new File("d:\\output.xml")));
}
}
|
Code 2: input.xml file |
<?xml version="1.0"?>
<!-- This is a comment -->
<people>
<address type="personal">
<name>Lars </name>
<street> Test </street>
<telephon number="0123" />
</address>
<address type="personal">
<name>Joe </name>
<street> Test2 </street>
<telephon number="1234" />
</address>
<address type="business">
<name>Jim</name>
<street> Test3 </street>
<telephon number="2345" />
</address>
</people>
|
Code 3: transform.xslt file |
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" />
<!-- Copy everything -->
<xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<!-- Do some adjustments for the address -->
<xsl:template match="address">
<xsl:element name="place-where-person-live">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- Put the name in a <hubba> tag -->
<xsl:template match="name">
<xsl:element name="name">
<nickName>
<xsl:apply-templates />
</nickName>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
|
Output: output.xml |
<?xml version="1.0" encoding="UTF-8"?><!-- This is a comment --><people>
<place-where-person-live>
<name><nickName>Lars </nickName></name>
<street> Test </street>
<telephon number="0123"/>
</place-where-person-live>
<place-where-person-live>
<name><nickName>Joe </nickName></name>
<street> Test2 </street>
<telephon number="1234"/>
</place-where-person-live>
<place-where-person-live>
<name><nickName>Jim</nickName></name>
<street> Test3 </street>
<telephon number="2345"/>
</place-where-person-live>
</people>
|