DTD の変更に伴い、いくつかの XML ファイルを変換しています。
変更の 1 つは、処理命令を他の要素の属性に変更することですが、命令から特定の情報を選択するのに問題があります。PI の使用方法についてはあまり見つけることができませんでした - 私が見つけたほとんどすべては、PI の作成方法に関するものです - しかし、私はこれを見つけることができました: http://doccookbook.sourceforge.net/html/en/dbc. common.pi.html
例 - 元の XML:
<?Fm Condition FM8_SYSTEM_HIDEELEMENT Dark%20Grey NO_OVERRIDE hide AsIs?>
<?Fm Condition FM8_TRACK_CHANGES_ADDED Forest%20Green SINGLE_UNDERLINE show AsIs?>
<?Fm Condition FM8_TRACK_CHANGES_DELETED Red STRIKETHROUGH show AsIs?>
<products>
<?Fm Condstart p-version?>
<prod>
<form>inj</form>
<strength>10, 20, 50</strength>
</prod>
<?Fm Condend p-version?>
<?Fm Condstart e-version?>
<prod>
<form>inj</form>
<strength>10</strength>
<packsize>0.4 mL (syringe), 4</packsize>
</prod>
<prod>
<form>inj</form>
<strength>20</strength>
<packsize>0.4 mL (syringe), 4</packsize>
</prod>
<prod>
<form>inj</form>
<strength>50</strength>
<packsize>0.4 mL (syringe), 4</packsize>
</prod>
<?Fm Condend e-version?>
</products>
このXSLテンプレートを試しました
<xsl:template match="processing-instruction()">
<xsl:choose>
<xsl:when test="'Condstart'">
<xsl:text>ELEPHANTS</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:copy />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
しかし、選択しようとしているものだけでなく、ドキュメント内のすべての処理命令が「エレファント」に変わります。