惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
小众软件
小众软件
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
博客园 - 【当耐特】
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
S
Secure Thoughts
O
OpenAI News
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
T
Tenable Blog
A
Arctic Wolf
L
LINUX DO - 热门话题
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
H
Heimdal Security Blog

博客园 - 礼拜一

MAC实用技巧 。 工业设计的10个基本法则 Web可用性设计的247条指导方针 选中文本,变绿~ Examples of location paths using the unabbreviated syntax C# Console:利用mspaint打开图像并保存 。 15戒律 HttpWebRequest默认的只有2个并发连接限制!!!!! 获取远程XML文档 在外企工作,一些英語用法潜规则 vs2008命令窗口使用 Visual Studio 2005 中的命令窗口 Error: No such interface supported 动态加载UserControl~ - 礼拜一 - 博客园 英语常用高频语句 jQuery的一些备忘 - 礼拜一 - 博客园 XPath表达式(缩写和详写方式) 穷死了,看电子书吧~ C#里边的控件缩写大全(比较规范)
XSLT模式匹配的语法
礼拜一 · 2009-10-14 · via 博客园 - 礼拜一

模板规则通过使用模式来匹配文档树的节点。模式指定一组条件,用于选择要处理的节点。

模式匹配的语法不光可以在<xsl:template>元素的match属性中使用,还可以在<xsl:apply- templates>、<xsl:value-of>、<xsl:for-each>、<xsl:copy- of>、<xsl:sort>、<xsl:variable>和<xsl:param>元素的select属 性中使用。

下面列出常用的模式匹配的用法:

1、匹配根节点

例如:<xsl:template match="/">,表示匹配根节点。

2、匹配元素节点

例如:<xsl:template match="employees">,表示匹配employees元素节点。

3、使用通配符

例如:<xsl:template match="*">,表示匹配任何元素。

4、使用@匹配属性

用@加上数姓名,可以用于匹配属性节点。

例如:<xsl:template match="@mode">,表示匹配mode属性节点。不过要注意的是,XSLT处理器在遍历节点的树状结构时,并不处理属性节点。如果要让处 理器处理属性节点,必须显式调用<xsl:apply-templates>元素,并使用select属性选择属性节点。

还可以将@与星号(*)一起使用,例如:<xsl:template match="@*">,表示匹配任意的属性节点。

5、使用斜杠(/)匹配子节点

例如:<xsl:template match="employees/employee">,表示匹配employees元素节点下的任意的employee子节点。

6、使用双斜杠(//)匹配后代节点

有时候,希望对某一类元素节点进行处理,而不管该节点在树状结构中所处的位置,就可以使用双斜杠(//)来匹配节点。例 如:<xsl:template match="//name">,表示匹配根节点下任意的name元素节点,而不管该节点所处的位置。例如:<xsl:template match="employees//name">,表示匹配employees元素节点下的任意的name元素节点。

7、使用或操作符(|)

使用或操作符(|)来可选择地匹配多个节点。例如:<xsl:template match="name|age">,表示匹配任意的name或age元素节点。

8、使用[]操作符

可以在[]中指定布尔表达式,用于在节点集中更精确地匹配某一个节点。

例如:如果只想匹配第一个employee元素,可以这样写:<xsl:template match="employee[1]">,表示匹配第一个employee子元素节点。这和上面的写法是等价的:

<xsl:template match="employee[position()=1]">

position()是一个函数调用,返回节点在上下文中的当前位置,然后判断该位置是否等于1.

9、使用node()匹配节点

node()表示匹配除属性节点和根节点之外的其他任何节点。

例如:<xsl:template match="node()">.

10、使用text()匹配文本节点

text()表示匹配任意的文本节点,例如:<xsl:template match="text()">。

11、使用processing-instruction()匹配处理指令

processing-instruction()表示匹配任的处理指令节点。

例如:<xsl:tempate match="processing-instruction()">。processing-instruction()还可以带一个参数,用于指定处理指令目标的名字,这样,只有和这个名字相同的处理指令才能被匹配。

12、使用comment()匹配注释

comment()表示匹配任意的注释节点,例如:<xsl:template match="comment()">。

13、使用id()进行匹配

一个ID类型的属性唯一标识了XML文档中的一个元素。

例如:<xsl:template match="id('E-2001320001')">表示匹配拥有ID类型属性并且其值等于E-2001320001的元素。要注意的是,要让 这种方式能够工作,必须在源XML文档的DTD中声明ID类型的属性,可以是内部的或外部的DTD,如果源文档那个没有DTD,则id()函数就不能正常 工作。