2016-11-22 2 views
0

Wir verfügen über eine Scan-Software, die für jede gescannte Seite eine XML-Datei mit Dokumenteninformationen erstellt. Die Software hat auch einen xslt Post-Prozess, der mit unseren eigenen Skripten verwendet werden kann.Kopieren/Verschieben des Werts einer Notiz in eine andere Notiz

Wir brauchen ein Skript, das den Wert von <AnnString></AnnString> zu <PreIJP></PreIJP> für jede Seite verschieben oder kopieren kann.

Ich habe einige Programmierkenntnisse, aber ich habe keine Erfahrungen mit xslt. Ich habe versucht, es herauszufinden, ohne Glück.

The XML input

Und hier ist der Code, den ich habe versucht zu verwenden:

<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> 

Mit besten Grüßen, Jesper

Antwort

1

Sie haben es rückwärts (unter anderem Fragen) . Versuchen:

<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

Nun ändern, das war einfach, danke :) –

1

Wenn Sie die leeren PreIJP Elemente füllen wollen, dann

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

zu

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