xslt – xpath 2.0 query – 如何测试当前元素是否是xml文档中具
发布时间:2020-12-16 23:08:33 所属栏目:百科 来源:网络整理
导读:我有以下xsl模板: xsl:template match="para" fo:block xsl:use-attribute-sets="paragraph.para" !-- if first para in document -- !--xsl:if test="//para[1] intersect ."-- xsl:if test="//para[1] intersect ." xsl:attribute name="space-after"10pt
我有以下xsl模板:
<xsl:template match="para"> <fo:block xsl:use-attribute-sets="paragraph.para"> <!-- if first para in document --> <!--<xsl:if test="//para[1] intersect .">--> <xsl:if test="//para[1] intersect ."> <xsl:attribute name="space-after">10pt</xsl:attribute> <xsl:attribute name="background-color">yellow</xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="preceding-sibling::*[1][self::title]"> <xsl:attribute name="text-indent">0em</xsl:attribute> </xsl:when> <xsl:when test="parent::item"> <xsl:attribute name="text-indent">0em</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="text-indent">1em</xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:apply-templates/> </fo:block> </xsl:template> 我遇到的问题是验证模板的当前节点是来自以下xml的文档中的第一个para节点: <document> <section> <paragraph> <para>Para Text 1*#</para> <para>Para Text 2</para> </paragraph> </section> <paragraph> <para>Para Text 3*</para> <para>Para Text 4</para> <para>Para Text 5</para> <sub-paragraph> <para>Para Text 6*</para> <para>Para Text 7</para> </sub-paragraph> </paragraph> <appendix> <paragraph> <para>Para Text 8*</para> </paragraph> <paragraph> <para>Para Text 9</para> </paragraph> </appendix> </document> 我目前使用的xpath是“// para [1] intersect”.这是为每组para选择第一个para(用XML样本中的*表示).关于如何在文档中选择para的第一次出现(用#表示)的任何想法? 解决方法
在XPath 1.0(XSLT 1.0)中,可以使用:
count( (//para)[1] | .) = 1 这也适用于XPath 2.0,但可能不如使用相交运算符那样有效. 我建议使用以下XPath 2.0表达式: (//para)[1] is . 请注意0??7000的使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Highcharts(二) 基础柱状图 ajax动态刷新
- ruby-on-rails – 现有Heroku应用程序上的Ruby 2
- ruby-on-rails – Rails使用on hover功能截断
- SQLite实时增删改查
- 使用 Storyboard 和 segue 实现 View Controller
- ruby-on-rails – ActiveRecord :: Relation#bin
- reactjs – 根据badgeContent中的内容操作Materi
- ruby-on-rails – 在表单vs csrf令牌上执行Rails
- digester解析xml_org.xml.sax.SAXParseException
- 编写高质量代码改善程序的157个建议:第87个建议
热点阅读