Ich bin neu in der XSL-FO-Programmierung und brauche Hilfe. Ich muss im Grunde eine XSL-FO-Datei in PDF mit Daten aus XML rendern.Konvertierung von XSL-FO nach PDF mit Apache FOP ausgehend von einer XML-Datei
Aber wenn ich versuche, erscheint alles richtig in der PDF (Hintergrund, manuell eingegebenen Text), aber nicht Daten, die aus XML gelesen werden sollten.
Beachten Sie, dass ich nur mit dem Element "idShip" versucht habe.
Meine XML-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE shipment SYSTEM "C:\Users\informatica\Documents\workspace\PrintTest\shipment.dtd">
<?xml-stylesheet href="shipment_to_pdf.xsl" ?>
<shipment>
<idShip>111</idShip>
<fare></fare>
<to>
<name></name>
<surname></surname>
<address1></address1>
<address2></address2>
<zip></zip>
<city></city>
<country></country>
<email></email>
<phone></phone>
</to>
<from>
<name></name>
<surname></surname>
</from>
</shipment>
XSL:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<fo:layout-master-set>
<fo:simple-page-master page-height="135mm"
page-width="216mm" margin-top="10mm" margin-left="20mm"
margin-right="20mm" margin-bottom="10mm" master-name="PageMaster">
<fo:region-body background-color="#EFAFAF"
margin-top="20mm" margin-left="10mm" margin-right="10mm"
margin-bottom="20mm" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence initial-page-number="1"
master-reference="PageMaster">
<fo:flow flow-name="xsl-region-body">
<fo:block text-indent="1em" font-family="sans-serif"
font-size="20pt" font-weight="bold" background-color="#EEEEEE"
line-height="20mm">
//this should be the problem
<xsl:for-each select="shipment">
<xsl:value-of select="idShip" />
</xsl:for-each>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
PDF rechts macht jetzt als Block mit einem roten Hintergrund, aber keine Daten von XML.
Was ist mit '/ shipment' und' idShip'? –
Bereits versucht, dass :(es scheint, dass ich nicht eine xsl-Datei schreiben kann, die sowohl xsl-fo und xslt-Befehle enthält ... Aber wie gesagt, ich bin neu, also vielleicht fehlt mir etwas – Ekos
Sie sind Mischen von XSL und XSL-FO. Es sind zwei nahe, aber verschiedene Dinge. XSL-FO ('.fo') -Datei sollte ein Produkt der Umwandlung sein:' XML> XSL> XSL-FO> PDF' Versuchen Sie, mit zu beginnen langsames Aufbauen der Datei 'test.fo' Normalerweise müssen Sie jeden Teil des XML, der im Ergebnis benötigt wird, mit einem XSL-Templates holen ... Zu breit für die Erklärung hier.Sie können sie wie Sie, aber in einem Stück mischen Anders sieht es aus: Sehen Sie das Diagramm [hier] (https://www.webucator.com/tutorial/learn-xsl-fo/formatting-objects-basics.cfm) und versuchen Sie [hier] zu folgen (http: // www. w3schools.com/xsl/) –