XML到XML的转换

时间:2012-01-18 06:11:23

标签: xml xslt xsd

我要求我有一个输入XML和一个XSD。我需要从输入xml格式转换为基于XSD的另一种xml格式。请帮帮我怎样才能做到这一点。我是xml转换的新手。

2 个答案:

答案 0 :(得分:1)

对于XML到XML的转换,您可以使用XSLT。查看示例here。如果您使用的是Java,请使用javax.xml.validation.Schema进行XSD验证

// parse an XML document into a DOM tree
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = parser.parse(new File("instance.xml"));

// create a SchemaFactory capable of understanding WXS schemas
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

// load a WXS schema, represented by a Schema instance
Source schemaFile = new StreamSource(new File("mySchema.xsd"));
Schema schema = factory.newSchema(schemaFile);

// create a Validator instance, which can be used to validate an instance document
Validator validator = schema.newValidator();

// validate the DOM tree
try {
    validator.validate(new DOMSource(document));
} catch (SAXException e) {
    // instance document is invalid!
}

示例here

对于转换,如果您正在使用XSLT,请使用TransformerFactory,或者您可以通过JAXB使用从XML到pojo的转换,并通过Marshaller class

将相同的内容编组到XML

答案 1 :(得分:0)

XSLT也是一个代码..你需要定义你想要的输出看起来像..
它很棒,你有预定义的XSD,所以你知道转换后生成的XML应该是什么。因此,相应地设计XSL代码..

并且XSD不会偶尔改变..(对于任何实际系统)..