Если кому интересно, вот мои результаты(схема, с помощью которой я трансформировал):
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:Boo="www.register.com/schema/Boo"
xmlns:Yoo="www.register.com/schema/Yoo">
<!-- XML output! -->
<xsl:output method="xml" indent="yes" cdata-section-elements="Boo:Hoo"/>
<xsl:template match="text()">
<xsl:value-of select="normalize-space()"/>
</xsl:template>
<xsl:template match="/">
<Boo:Hoo>
<xsl:apply-templates/>
This is the boo-hoo-yoo response string for .com
</Boo:Hoo>
</xsl:template>
<xsl:template match="/Foo/A">
<Boo:A>
<xsl:value-of select="concat('(',
substring-before(., '-'),
')',
translate(substring-after(.,'-'), '-', '.'))"/>
</Boo:A>
</xsl:template>
<xsl:template match="/Foo/B">
<Yoo:B>B=<xsl:apply-templates/> </Yoo:B>
</xsl:template>
</xsl:stylesheet>
а вот джавовский код, который это все делал:
Code: Select all
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import jaxp.*;
public class Main {
// Global value so it can be ref'd by the tree-adapter
static Document document;
public static void main( String[] args ) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
// create a JAXBContext
JAXBContext jc = JAXBContext.newInstance( "jaxp" );
ObjectFactory objFactory = new ObjectFactory();
Foo foo = objFactory.createFoo();
String[] strings = {"111-222-333", "444-555-666", "777-888-999"};
foo.setA(strings);
foo.setB(1234);
// create a Marshaller and marshal to myFoo.xml
Marshaller m = jc.createMarshaller();
m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
m.marshal( foo, new FileOutputStream("myFoo.xml"));
File stylesheet = new File("foo_transform.xsl");
File datafile = new File("myFoo.xml");
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
// Use a Transformer for output
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new FileOutputStream("myTransformedFoo.xml"));
transformer.transform(source, result);
} catch( JAXBException je ) {
je.printStackTrace();
}
catch(Exception e){
e.printStackTrace(System.out);
}
}
}
Такие вот дела, отослал, будем ждать теперь ответа
![Smile :)](./images/smilies/icon_smile.gif)