Apache 我的xsl fo代码有什么问题
我正试图通过以下命令使用ApacheFop生成pdfApache 我的xsl fo代码有什么问题,apache,xslt,xsl-fo,apache-fop,Apache,Xslt,Xsl Fo,Apache Fop,我正试图通过以下命令使用ApacheFop生成pdf C:\fop-1.0-bin\fop-1.0>fop-xml-sample1.xml-xsl-fo.xsl-pdf-sample2.pdf 我的xml看起来像这样 <?xml version="1.0" encoding="iso-8859-1"?> <service> <serviceId>11111</serviceId> <openDate>2012-02-16
C:\fop-1.0-bin\fop-1.0>fop-xml-sample1.xml-xsl-fo.xsl-pdf-sample2.pdf
我的xml看起来像这样
<?xml version="1.0" encoding="iso-8859-1"?>
<service>
<serviceId>11111</serviceId>
<openDate>2012-02-16</openDate>
<closeDate>2012-02-16</closeDate>
<description>INSPECT MACHINE</description>
<repairCost>$266.76</repairCost>
</service>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
>
<xsl:output encoding="iso-8859-1" />
<xsl:template match ="Service">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="Service">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="Service">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:table>
<fo:table-body>
<fo:table-row>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Service Id</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Open Date</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Close Date</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Order Status</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Description</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Repair Cost</fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:for-each select="./servicetype">
<fo:table-row>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="serviceId" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="openDate" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="closeDate" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="description" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="repairCost" /></fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
尝试在foreach中更改xpath
<xsl:for-each select="./service">
xml:
11111
2012-02-16
2012-02-16
状态2
检查机器
$266.76
11111
2012-02-16
2012-02-16
状态1
检查机器
$266.76
xsl:
服务Id
开放日期
截止日期
订单状态
描述
修理费
尝试更改foreach中的xpath
<xsl:for-each select="./service">
xml:
11111
2012-02-16
2012-02-16
状态2
检查机器
$266.76
11111
2012-02-16
2012-02-16
状态1
检查机器
$266.76
xsl:
服务Id
开放日期
截止日期
订单状态
描述
修理费
这会像一个案例问题那么简单吗?您的示例XML使用
作为根标记,但您有
(大写字母S)。它可能像大小写问题一样简单吗?示例XML使用
作为根标记,但您有
(大写字母S)。FOP不支持自动表格布局,而是使用固定表格布局
FOP不支持自动布局,因为页面具有静态宽度[A4,A3…]
自动模式仅在html格式副本中受支持,因为页面大小可能会更改(取决于分辨率、调整窗口大小…)
见:
注意:为了避免警告,您应该指定table layout=“fixed”,并在定义widt列时使用width=“100%”和“*”,FOP不支持自动表格布局,而是使用固定表格布局 FOP不支持自动布局,因为页面具有静态宽度[A4,A3…] 自动模式仅在html格式副本中受支持,因为页面大小可能会更改(取决于分辨率、调整窗口大小…) 见: 注意:为了避免出现警告,您应该指定table layout=“fixed”,并在定义widt列时使用width=“100%”和“*”,重要的是获取
<?xml version="1.0" encoding="iso-8859-1"?>
<services>
<service>
<serviceId>11111</serviceId>
<openDate>2012-02-16</openDate>
<closeDate>2012-02-16</closeDate>
<orderStatus>Status2</orderStatus>
<description>INSPECT MACHINE</description>
<repairCost>$266.76</repairCost>
</service>
<service>
<serviceId>11111</serviceId>
<openDate>2012-02-16</openDate>
<closeDate>2012-02-16</closeDate>
<orderStatus>Status1</orderStatus>
<description>INSPECT MACHINE</description>
<repairCost>$266.76</repairCost>
</service>
</services>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output encoding="iso-8859-1" />
<xsl:template match ="services">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="service">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="service">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:table>
<fo:table-body>
<fo:table-row>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Service Id</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Open Date</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Close Date</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Order Status</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Description</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>Repair Cost</fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:for-each select="./service">
<fo:table-row>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="serviceId" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="openDate" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="closeDate" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="orderStatus" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="description" /></fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px bold" text-align="center">
<fo:block><xsl:value-of select="repairCost" /></fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200510.mbox/%3C20051005124250.8A19A21E@ajax.apache.org%3E
http://wiki.apache.org/xmlgraphics-fop/Troubleshooting/CommonLogMessage