作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 HTML 到 BBCode 转换器,但作为 XSL 中的新手,我需要帮助打破僵局。这是我到目前为止所得到的:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" encoding="UTF-8">
<xsl:output method="text" omit-xml-declaration="yes" indent="no" encoding="UTF-8"/>
<xsl:template match="h1|h2|h3|h4">[h]<xsl:apply-templates/>[/h]</xsl:template>
<xsl:template match="b|strong">[b]<xsl:apply-templates/>[/b]</xsl:template>
<xsl:template match="i|em">[i]<xsl:apply-templates/>[/i]</xsl:template>
<xsl:template match="u">[u]<xsl:apply-templates/>[/u]</xsl:template>
<xsl:template match="br"> </xsl:template>
<xsl:template match="p"> <xsl:apply-templates/> </xsl:template>
<xsl:template match="img">[img]<xsl:value-of select="@src"/>[/img]</xsl:template>
<xsl:template match="a">[url="<xsl:value-of select="@href"/>"]<xsl:apply-templates/>[/url]</xsl:template>
<xsl:template match="style|script"></xsl:template>
</xsl:stylesheet>
<a>
在
href
中有特定关键字的并删除这些节点,同时保留其他节点?然后检查那些
<a>
是否为空,从而决定是否使用
[url]http://foo[/url]
或
[url="http://foo"]bar[/url]
?
<a href="http://spammycrap.tld">Foo</a>
<a href="http://empty.tld"></a>
<a href="http://okay.tld">Baz</a>
[url]http://empty.tld[/url]
[url="http://okay.tld"]Baz[/url]
最佳答案
删除在其 href
中有不需要的字符串的 anchor 属性,展开您的 match
XPath 表达式:
<xsl:template match="a[not(contains(@href,'Foo'))]">...
Foo
可能是
spammycrap.com
或者什么。
<xsl:template match="a[not(contains(@href,'Foo')) and not(count(node()) = 0)]">...
<xsl:template match="a[not(contains(@href,'Foo')) and not(node())]">...
<xsl:template match="a[not(contains(@href,'Foo')) and not(count(node()) = 0)]">[url="<xsl:value-of select="@href"/>"]<xsl:apply-templates/>[/url]</xsl:template>
<xsl:template match="a[not(contains(@href,'Foo')) and not(node())]">[url]<xsl:value-of select="@href"/>[/url]</xsl:template>
关于xml - 如何使用 XSL 在 href 中查找具有特定关键字的 <a> 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082675/
我是一名优秀的程序员,十分优秀!