[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00456] XSLT で変換後の属性名の順番
えんどうです。たまには質問させてください。
# おそらくFAQだと思いますが...
<?xml version="1.0" encoding="EUC-JP" ?>
<root>
<hoge>
<piyo>text/html; charset=euc-jp</piyo>
</hoge>
</root>
この↑ようなXMLソースに、
<?xml version="1.0" encoding="EUC-JP"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="hoge">
<html>
<head>
<xsl:element name="meta">
<xsl:attribute name="http-equiv">content-type</xsl:attribute>
<xsl:attribute name="content">
<xsl:value-of select="piyo"/>
</xsl:attribute>
</xsl:element>
</head>
</html>
</xsl:template>
</xsl:stylesheet>
この↑ようなXSLを適用し、
private static void saveTransformedHtml(String template, Document doc) {
final String OUTPUT_FILENAME = "temp.xml";
try {
DOMResult result = new DOMResult();
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(
template));
transformer.setOutputProperty("encoding", "EUC-JP");
transformer.transform(new DOMSource(doc), result);
Document dOutput = (Document) result.getNode();
OutputFormat format = new OutputFormat(dOutput, "EUC-JP", true);
DOMSerializer serializer = new XMLSerializer(new FileOutputStream(
OUTPUT_FILENAME), format).asDOMSerializer();
serializer.serialize(dOutput);
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
この↑ように変換すると、
<?xml version="1.0" encoding="EUC-JP"?>
<html>
<head>
<meta content="text/html; charset=euc-jp" http-equiv="content-type"/>
</head>
</html>
このような結果が得られます。
[Q] 属性名の順番を制御し、
<meta http-equiv="content-type" content="text/html; charset=euc-jp"/>
という結果を得ることは可能でしょうか?
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)