2016-11-22 28 views
0

我們有一個掃描軟件,它爲掃描的每個頁面創建一個包含文檔信息的XML文件。該軟件還具有可用於我們自己的腳本的xslt後期處理。複製/移動音符的值到另一個音符

我們需要一個腳本,可以將每個頁面的值從<AnnString></AnnString>移動或複製到<PreIJP></PreIJP>

我確實有一些編程經驗,但我對xslt沒有任何期望。 我試圖弄清楚,沒有運氣。

The XML input

這裏是代碼中,我試圖用:

<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

你有它向後(除其他事項外) 。嘗試:

<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

嗯,這很簡單,謝謝:) –

1

如果要填充空PreIJP元素然後更改

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

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