【发布时间】:2014-01-22 13:43:26
【问题描述】:
我有以下数据结构:
有一些表[n]。在每个表格单元格中都有一些结构,其中包含例如用户字段,例如:姓名、姓名、地址等。
有我的代码,我想从表格的第一个单元格中获取数据:
<xsl:value-of select="//uf:field[@name='table']//uf:fv[1]//uf:address/uf:MIEJSCOWOSC" />
问题是,数据没有显示出来。
我的选择里面有一些问题。有谁知道怎么回事?
我的 xml 字段中有一部分包含相关数据:
<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://www.xxx.pl" xmlns:uf="http://www.xxx.pl">
<ApplicationData>
<complex>
<field name="table">
<fv>
<t.0>
<address type="address">
<KOD_POCZTOWY type="String">^KOD_POCZTOWY^</KOD_POCZTOWY>
<KRAJ type="String">^KRAJ^</KRAJ>
<MIEJSCOWOSC type="String">^MIEJSCOWOSC^</MIEJSCOWOSC>
<NR_BUDYNKU type="String">^NR_BUDYNKU^</NR_BUDYNKU>
<NR_LOKALU type="String">^NR_LOKALU^</NR_LOKALU>
<TELEFON type="String">^TELEFON^</TELEFON>
<TYP_ADRESU type="String">^TYP_ADRESU^</TYP_ADRESU>
<TYP_ULICY type="String">^TYP_ULICY^</TYP_ULICY>
<ULICA type="String">^ULICA^</ULICA>
<ID type="String">^ID^</ID>
</address>
</t.0>
<t.1>
<address type="address">
<KOD_POCZTOWY type="String">^KOD_POCZTOWY^</KOD_POCZTOWY>
<KRAJ type="String">^KRAJ^</KRAJ>
<MIEJSCOWOSC type="String">^MIEJSCOWOSC^</MIEJSCOWOSC>
<NR_BUDYNKU type="String">^NR_BUDYNKU^</NR_BUDYNKU>
<NR_LOKALU type="String">^NR_LOKALU^</NR_LOKALU>
<TELEFON type="String">^TELEFON^</TELEFON>
<TYP_ADRESU type="String">^TYP_ADRESU^</TYP_ADRESU>
<TYP_ULICY type="String">^TYP_ULICY^</TYP_ULICY>
<ULICA type="String">^ULICA^</ULICA>
<ID type="String">^ID^</ID>
</address>
</t.1>
</fv>
</field>
我添加了我的 xslt 文件:
<encoding="utf-8"?>
<xsl:stylesheet version="2.0"
xmlns:uf="http://www.xxx.pl"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:ibex="http://www.xmlpdf.com/2003/ibex/Format"
exclude-result-prefixes="xsl msxsl uf"
>
<xsl:include href="../subs/xxx.xslt"/>
<xsl:include href="../subs/xxxx.xslt"/>
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<xsl:variable name="line-height" select="18"/>
<xsl:template match="/">
<fo:root>
<xsl:call-template name="layout-master-set">
<xsl:with-param name="margin_TB" select="'0cm'"/>
<xsl:with-param name="margin_LR" select="'0cm'"/>
<xsl:with-param name="header_extent" select="'5.25cm'"/>
<xsl:with-param name="footer_extent" select="'5.25cm'"/>
</xsl:call-template>
<fo:page-sequence master-reference="default">
<fo:flow flow-name="body" line-height="12.0pt" font-family="Trebuchet MS" font-size="10.0pt">
<fo:block text-align-last="justify">
<fo:inline font-weight="normal">text</fo:inline>
<fo:leader leader-pattern="space" />
<fo:inline font-weight="normal">City</fo:inline>
</fo:block>
<fo:block font-weight="bold" font-size="8pt">
</fo:block>
<fo:block font-size="8pt" />
<fo:block font-size="8pt" margin-left="11.11cm" />
<fo:block font-size="8pt" margin-left="11.11cm" />
<fo:block font-size="8pt" margin-left="11.11cm">
<xsl:value-of select="//uf:field[@name='table']//uf:fv[1]//uf:address//uf:MIEJSCOWOSC" />
</fo:block>
【问题讨论】:
-
我们也需要相关的源xml。
-
XSLT 样式表中前缀“uf”的命名空间是否与 XML 中定义的完全相同?
-
我看不出有什么明显的错误。也许展示一个小(但完整)的 XSLT 示例,以充分证明问题会有所帮助?谢谢!