您的位置:程序门 -> web 开发 -> xml/soap



在线等(百分求助)——xml文档通过xslt转换为fo文档小问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


在线等(百分求助)——xml文档通过xslt转换为fo文档小问题[已结贴,结贴人:dreamagean]
发表于:2007-05-16 09:42:40 楼主
<?xml   version= "1.0 "?>
<公文体   xmlns= "http://www.egs.org.cn/egovdoc/body "   xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance ">
<眉首>
<份数序号> 00001 </份数序号>
<秘密等级> 机密 </秘密等级>
<保密期限> 1年 </保密期限>
<紧急程度> 特急 </紧急程度>
<发文机关标识>
<发文机关名称> 中共xxx市委办公厅 </发文机关名称>
<发文机关名称> 中共xxx市委办公厅 </发文机关名称>
<标识后缀> 文件 </标识后缀>
</发文机关标识>
<发文字号>
<发文机关代字> x发 </发文机关代字>
<发文年号> 2004 </发文年号>
<发文序号> x号 </发文序号>
</发文字号>
</眉首>
<主体>
<标题> 中共xxx市委办公厅关于xxxxxxxxxxx的通知 </标题>
<主送机关> 各有关单位 </主送机关>
<正文>
<自然段> xxxxxxxxxxxxxxxxxxx。 </自然段>
<自然段> xxxxxxxxxx(见表1)。 </自然段>
<表格>
<表行>
<表单元格>
<自然段> 1 </自然段>
</表单元格>
<表单元格>
<自然段> xxxx </自然段>
</表单元格>
</表行>
<表行>
<表单元格>
<自然段> 2 </自然段>
</表单元格>
<表单元格>
<自然段> xxxx </自然段>
</表单元格>
</表行>
<表说明>
<表序> 表1 </表序>
<表题> xxx表 </表题>
</表说明>
</表格>
</正文>
<附件   附件说明= "   xxxxxxx "   文件名= "xxxxxxx.rtf "   数据类型= "apliction/rich   text   file "   编码方式= "base64 "   > 9iaulk3290safkaslfkjqaw9er8732kl4jaslfk </附件>
<公文生效标识>
<发文机关署名> 中共xxx市委办公厅 </发文机关署名>
<发文机关印章/>
<发文机关署名> xxx市人民政府办公厅 </发文机关署名>
<发文机关印章/>
</公文生效标识>
<成文日期> 2004-01-01 </成文日期>
</主体>
<版记>
<主题词>
<词目> xxx </词目> <词目> xxx </词目> <词目> 通知 </词目>
</主题词>
<抄送机关   抄送类别= "抄报 "> 省委 </抄送机关>
<抄送机关   抄送类别= "抄报 "> 省政府 </抄送机关>
<抄送机关   抄送类别= "抄送 "> 各区委区政府 </抄送机关>
<印制版记>
<印发机关> 中共xxx市委办公厅 </印发机关>
<印发日期> 2004-05-01 </印发日期>
<印发份数> 15 </印发份数>
</印制版记>
</版记>
</公文体>
  而编写的xsl文档(只测试显示一个节点   )如下:
<?xml   version= "1.0 "   encoding= "gb2312 "?>
<xsl:stylesheet   version= "1.0 "   xmlns:xsl= "http://www.w3.org/1999/xsl/transform "   xmlns:fo= "http://www.w3.org/1999/xsl/format ">
  <xsl:template   match= "/ ">
    <fo:root   xmlns:fo= "http://www.w3.org/1999/xsl/format ">
      <fo:layout-master-set>
        <fo:simple-page-master   master-name= "a4 ">
          <fo:region-body> </fo:region-body>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence   master-reference= "a4 ">
        <fo:flow   flow-name= "xsl-region-body ">
          <fo:block>
            <xsl:apply-templates   select= "公文体/眉首/份数序号 ">
            </xsl:apply-templates>
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </xsl:template>
</xsl:stylesheet>

可为什么显示不出结果
请各位大侠相助!!!!!!!!!!
有时候改变节点比如说 <xsl:template   match= "公文体 ">
则出现所有的子元素,并且是乱码。很可能是xsl定位错误,但不知道那里出错,比如我就想在fo文件中将xml文档的所有元素输出应该怎么做?节点定位是不是有问题
发表于:2007-05-16 11:37:581楼 得分:0
学习
发表于:2007-05-22 13:28:352楼 得分:100
你的xml文件的头文件引入了样式,改成这样即可:
<?xml   version= "1.0 "   encoding= "utf-8 "   ?>
<?xml-stylesheet   type= "text/xsl "   href= "tino.xsl "?>
<公文体   >
    <眉首>
        <份数序号> 00001 </份数序号>
        <秘密等级> 机密 </秘密等级>
        <保密期限> 1年 </保密期限>
        <紧急程度> 特急 </紧急程度>
        <发文机关标识>
            <发文机关名称> 中共xxx市委办公厅 </发文机关名称>
            <发文机关名称> 中共xxx市委办公厅 </发文机关名称>
            <标识后缀> 文件 </标识后缀>
        </发文机关标识>
        <发文字号>
            <发文机关代字> x发 </发文机关代字>
            <发文年号> 2004 </发文年号>
            <发文序号> x号 </发文序号>
        </发文字号>
    </眉首>
    <主体>
        <标题> 中共xxx市委办公厅关于xxxxxxxxxxx的通知 </标题>
        <主送机关> 各有关单位 </主送机关>
        <正文>
            <自然段> xxxxxxxxxxxxxxxxxxx。 </自然段>
            <自然段> xxxxxxxxxx(见表1)。 </自然段>
            <表格>
                <表行>
                    <表单元格>
                        <自然段> 1 </自然段>
                    </表单元格>
                    <表单元格>
                        <自然段> xxxx </自然段>
                    </表单元格>
                </表行>
                <表行>
                    <表单元格>
                        <自然段> 2 </自然段>
                    </表单元格>
                    <表单元格>
                        <自然段> xxxx </自然段>
                    </表单元格>
                </表行>
                <表说明>
                    <表序> 表1 </表序>
                    <表题> xxx表 </表题>
                </表说明>
            </表格>
        </正文>
        <附件   附件说明= "   xxxxxxx "   文件名= "xxxxxxx.rtf "   数据类型= "apliction/rich   text   file "   编码方式= "base64 "   > 9iaulk3290safkaslfkjqaw9er8732kl4jaslfk </附件>
        <公文生效标识>
            <发文机关署名> 中共xxx市委办公厅 </发文机关署名>
            <发文机关印章/>
            <发文机关署名> xxx市人民政府办公厅 </发文机关署名>
            <发文机关印章/>
        </公文生效标识>
        <成文日期> 2004-01-01 </成文日期>
    </主体>
    <版记>
        <主题词>
            <词目> xxx </词目>
            <词目> xxx </词目>
            <词目> 通知 </词目>
        </主题词>
        <抄送机关   抄送类别= "抄报 "> 省委 </抄送机关>
        <抄送机关   抄送类别= "抄报 "> 省政府 </抄送机关>
        <抄送机关   抄送类别= "抄送 "> 各区委区政府 </抄送机关>
        <印制版记>
            <印发机关> 中共xxx市委办公厅 </印发机关>
            <印发日期> 2004-05-01 </印发日期>
            <印发份数> 15 </印发份数>
        </印制版记>
    </版记>
</公文体>
发表于:2007-05-22 13:30:153楼 得分:0
要取节点值就很简单了,比如这个xsl
    <?xml   version= "1.0 "   encoding= "utf-8 "?>

<xsl:stylesheet   version= "1.0 "
        xmlns:xsl= "http://www.w3.org/1999/xsl/transform ">

<xsl:template   match= "公文体 ">
        <html>
        <body>
                    <xsl:value-of   select= "眉首/份数序号 "/> <br   />
            </body>
        </html>
</xsl:template>

</xsl:stylesheet>  
   
    还有你的xml文件的节点名称最好不要是中文的,会很麻烦的


快速检索

最新资讯