2016-11-22 3 views
0

スキャンされた各ページのドキュメント情報を含むXMLファイルを作成するスキャンソフトウェアがあります。ソフトウェアには、独自のスクリプトで使用できるxsltの後処理もあります。ノートの値を別のノートにコピー/移動

各ページの値を<AnnString></AnnString>から<PreIJP></PreIJP>に移動またはコピーできるスクリプトが必要です。

私はいくつかのプログラミングの期限がありますが、私はxsltでどんなexpirienceも持っていません。 私は運がなければ、それを理解しようとしました。 (他の問題の中で)

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="node()|@*"> 
<xsl:copy> 
    <xsl:apply-templates select="node()|@*"/> 
</xsl:copy> 
</xsl:template> 

<xsl:template match="Page/Fields/AnnString/text()"> 
<xsl:value-of select="../../PreIJP"/> 
</xsl:template> 

よろしく、 ジェスパー

答えて

1

あなたは後方にそれを持っている:

The XML input

そして、ここでは私が使用しようとしたコードです。試してみてください:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<!-- identity transform --> 
<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="PreIJP"> 
    <xsl:copy> 
     <xsl:value-of select="../AnnString"/> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 
+0

<xsl:template match="Page/Fields/AnnString/text()"> <xsl:value-of select="../../PreIJP"/> </xsl:template> 

を変更する、それが、おかげで簡単だった:) –

1

を使用すると、空のPreIJP要素を投入したい場合は、まあ

<xsl:template match="PreIJP"> 
    <xsl:copy> 
    <xsl:value-of select="../AnnString"/> 
    </xsl:copy> 
</xsl:template>