xml to other xml convert

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>


Previous
Next Post »