每当我发现xml元素的匹配时,我想调用我自己的xsl模板,其属性值以“Heading”开头.如何在Xslt中进行此查询.
例如:
<w:p> <w:pPr> <w:pStyle w:val="Heading2"/> </w:pPr> </w:p> <w:p> <w:pPr> <w:pStyle w:val="Heading1"/> </w:pPr> </w:p> <w:p> <w:pPr> <w:pStyle w:val="Heading2"/> </w:pPr> </w:p> <w:p> <w:pPr> <w:pStyle w:val="ListParagraph"/> </w:pPr> </w:p> <w:p> <w:pPr> <w:pStyle w:val="commentText"/> </w:pPr> </w:p>
所以,我想查询w:pStyle – > w:val仅以“标题”开头.
请帮我解决这个问题……
您可以通过使用XPath字符串函数来实现此目的
<xsl:template match="w:pStyle[starts-with(@w:val,'Heading')]">
这简单地匹配所有w:pStyle节点,其中w:val属性以单词Heading开头.然后,您可以将自己的代码放在此模板中.
以下是如何在XSLT标识转换中使用它的示例
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://mynamespace.com"> <xsl:output method="xml" indent="yes"/> <xsl:template match="w:pStyle[starts-with(@w:val,'Heading')]"> <!-- Your code here --> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
除非你在自己的代码中添加了自己的代码,否则上面的XSLT将从XML中删除所有数学w:pStyle元素.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。