XML PUBLISH 的一点总结(转)

XML PUBLISH 的一点总结转自http://seanliu.sa.blog.163.com/blog/static/10296591120093771037627/

xsl 语法简介:
1.寻找(定位)数据:locating date
在XML文档中使用路径表达式来定位数据,例如:下面的实例中返回所有的CD元素
//CATALOG/CD
双斜线(//)指示满足查询标准的XML文档中的所有元素
单斜线(/)用于区分子节点

例如:中
其中,//G_LINES[LINE_TYPE='LINE']的方括号为进一步的限制查询,
可以使用@symbol来确定属性,例如//CD[@cattype="Rock"]

同样,可以使用布尔表达式竖线(|)来连接多个复杂的查询 例如
//CD[@cattype="Folk"]|//CD[@cattype="Rock"]


2.上下文联系与父关系
为了选择当前元素及其父元素,xsl语言将dot(点.)符号来导航目录,使用单个点(.)表示当前节点,使用(..)来返回当前节点的父层
例如,获取所有节点的父层的用法为: ../*


3.使用上下文命令 context commands
--作用:1.定义if条件表达式,2.创建一个新的头及其页码在循环语句中(for-each)3.定义变量
语法:
 1)在xml publisher中使用的简单语法为:@context,例如:<?for-each@section:INVOICE?>用于每次occurrence时,组INVOICE产生一个新的段 @section后似乎不能跟参数
*2)对于xsl语言而言: 需要增加xdofo:ctx="context"属性来特别指出插入指令

  context 包括:
  section  -- 等同于for-each@section例如
  column   --用于显示/隐藏表的column
  cell     --
  block    --主要使用于if/for-each中
  inline   --用于变量
* incontext--The statement is inserted immediately after the surrounding statement. This is the default for <?sort ?> statements that need to follow the surrounding for-each as
             the first element.
* inblock  --This is typically not useful for control statements (such as if and for-each) but is useful for statements that generate text, such as call-template.
  inlines  --
  begin    --
  end      --


4.各类语法
  定义模版规则:XSL Syntax:
  拷贝当前节点:XSL Syntax:
  调用模版:    XSL Syntax:
  模版声明:    XSL Syntax:
  变量声明:    XSL Syntax: Example:
  倒入连接:    XSL Syntax:

5.position() function returns a record counter while in the loop,可以把position当成一个指针,返回当前记录集的在具体某一行的行数,

6.如何定义参数:
  --定义常数
  --定义动态的变量

7.换页的方法
  a.page
  b.如果按固定行换页: 需要定义2个参数
  在end-each前加上:
 page
  其中$start为每页起始行的position(),$lpp为每页固定行的行数,count($invLines)每个header对应的总行数,
  c.在某处强制分页如新组新页,那么可以使用Word的分页符(CTRL+ENTER快捷键),但会导致最后出现空白页;
  d.分组声明中加@section,如< ?for-each@section:G_PO_HEADER?>。
  e.<?end for-each?>前加<?split-by-page-break: ?>。这个 翻译后,实际上是:
   
    page
   
  f. <?end for-each?>前加page,此法下RTF最后无空白页,但PDF有空白页。
  g. <?end for-each?>前加page此法下RTF、PDF最后都有空白页。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-706836/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25103190/viewspace-706836/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用XSLT(XSL Transformations)来将XML换为HTML,以下是一个示例: XML文件(example.xml): ```xml <?xml version="1.0" encoding="UTF-8"?> <catalog> <book id="001"> <author>John Doe</author> <title>XML for Dummies</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-12-16</publish_date> <description>An in-depth look at creating applications with XML.</description> </book> <book id="002"> <author>Jane Smith</author> <title>HTML for Dummies</title> <genre>Computer</genre> <price>39.95</price> <publish_date>2001-12-01</publish_date> <description>Learn HTML quickly and easily.</description> </book> </catalog> ``` XSL文件(example.xsl): ```xml <?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> <h2>Book Catalog</h2> <table border="1"> <tr bgcolor="#9acd32"> <th style="text-align:left">Title</th> <th style="text-align:left">Author</th> <th style="text-align:left">Genre</th> <th style="text-align:left">Price</th> <th style="text-align:left">Publish Date</th> <th style="text-align:left">Description</th> </tr> <xsl:for-each select="catalog/book"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="genre"/></td> <td><xsl:value-of select="price"/></td> <td><xsl:value-of select="publish_date"/></td> <td><xsl:value-of select="description"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> ``` 在浏览器中打开HTML文件,并将XML和XSL文件作为参数传递给transformNode方法: ```html <!DOCTYPE html> <html> <head> <title>XML to HTML using XSLT</title> </head> <body> <script> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load("example.xml"); var xslDoc = new ActiveXObject("Microsoft.XMLDOM"); xslDoc.async = false; xslDoc.load("example.xsl"); document.write(xmlDoc.transformNode(xslDoc)); </script> </body> </html> ``` 运行HTML文件,将会显示一个带有XML数据的HTML表格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值