Java を使用して XML ドキュメントをテキストに変換しています。
Transformer transformer = tFactory.newTransformer(stylesource);
transformer.transform(source, result);
これは、XML ドキュメントにコロンがある場合を除いて機能するようです。この例を試しました: XML ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<test:TEST >
<one.two:three id="my id" name="my name" description="my description" >
</one.two:three>
<one.two:three id="some id" name="some name" description="some description" />
</test:TEST>
XSL ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:one.two="http://www.one.two/one.two:three" >
<xsl:output method="text" indent="yes" omit-xml-declaration="yes"/>
<xsl:variable name="myVariable">one.two:three</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*[substring(name(),1,9)='test:TEST']" >
<xsl:for-each select="./$myVariable">
inFirstLoop
</xsl:for-each>
<xsl:for-each select="./one.two:three">
inSecondLoop
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
私が得ている変換の結果は、1 行です。
inFirstLoop
私は4行の出力を期待しています
inFirstLoop
inFirstLoop
inSecondLoop
inSecondLoop
これを修正するにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう。