对此有任何帮助。
我想从外部xml文件中删除某些节点,这些节点是我用xslt设置的。这是Feed:http://www.wcwg.info/feeds/localevents.aspx?a=00392&p=CM159EH&m=20。
我想删除的节点是:
本地活动已发布至WhereCanWeGo.com.00392CM15 9EH31 /一千〇七分之一十/1010001111111111111111111031分之11 十月 2010http://www.wherecanwego.com/events/signin.aspxww.wherecanwego.com/events/signin.aspx
是否有人能够指导我如何删除这些初始节点(参数)?它们是邮政编码,帐号,供稿网址等。
我迫不及待地想完成这件事,但这是最后的障碍!非常感谢任何响应的人......
样式表(片段)
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="item">
<div class="local_events">
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="Venue"/>
<xsl:apply-templates select="Times"/>
<xsl:apply-templates select="Dates"/>
<xsl:apply-templates select="DetailsURL"/>
</div><div style="height:1px;border-bottom:1px dotted #cfcfcf;"></div>
</xsl:template>
<xsl:template match="title">
<h2><a class="title" target="_blank" rel="nofollow" href="{../DetailsURL}"><xsl:value-of select="."/></a></h2>
</xsl:template>
<xsl:template match="Venue">
<span>Location: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Times">
<span>Details: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Dates">
<span>Dates: </span>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="DetailsURL">
<a style="font-weight:normal;margin-left:0.5em;" target="_blank" rel="nofollow" href="{.}"><xsl:text>Full details...</xsl:text></a>
</xsl:template>
答案 0 :(得分:0)
如果您已经使用了不能完全符合要求的XSLT样式表,请发布样式表或链接。 [编辑] 在您发布的样式表更改
中<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
到
<xsl:template match="/">
<xsl:apply-templates select="//item"/>
</xsl:template>
答案 1 :(得分:0)
从您的问题不清楚并分析Feed,您似乎想要摆脱未命名为LocalEvents
的顶级(item
)节点的所有子节点。
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*/*[not(self::item)]"/>
</xsl:stylesheet>
应用于提供的Feed(http://www.wcwg.info/feeds/localevents.aspx?a=00392&p=CM159EH&m=20)时,会生成所需结果。
请注意:如何通过匹配它们的空模板删除(未处理,忽略)所需元素,并覆盖用于复制其余元素的身份规则节点“原样”。
答案 2 :(得分:0)
现在,对于同样情况下的其他任何人,现在已经更正了以下内容:
<xsl:template match="/">
<xsl:apply-templates select="/LocalEvents/item"/>
</xsl:template>
<xsl:template match="item">
<div class="local_events">
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="Venue"/>
<xsl:apply-templates select="Times"/>
<xsl:apply-templates select="Dates"/>
<xsl:apply-templates select="DetailsURL"/>
</div><div style="height:1px;border-bottom:1px dotted #cfcfcf;"></div>
</xsl:template>
<xsl:template match="title">
<h2><a class="title" target="_blank" rel="nofollow" href="{../DetailsURL}"><xsl:value-of select="."/></a></h2>
</xsl:template>
<xsl:template match="Venue">
<span>Location: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Times">
<span>Details: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Dates">
<span>Dates: </span>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="DetailsURL">
<a style="font-weight:normal;margin-left:0.5em;" target="_blank" rel="nofollow" href="{.}"><xsl:text>Full details...</xsl:text></a>
</xsl:template>
</xsl:stylesheet>
答案 3 :(得分:0)
其他approuch。这个样式表:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:preserve-space elements="Times"/>
<xsl:template match="text()"/>
<xsl:template match="item">
<div class="local_events">
<xsl:apply-templates/>
</div>
<div style="height:1px;border-bottom:1px dotted #cfcfcf;"></div>
</xsl:template>
<xsl:template match="title">
<h2>
<a class="title" target="_blank" rel="nofollow" href="{../DetailsURL}">
<xsl:value-of select="."/>
</a>
</h2>
</xsl:template>
<xsl:template match="Venue">
<span>Location: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Times">
<span>Details: </span>
<xsl:value-of select="."/>
<br />
</xsl:template>
<xsl:template match="Dates">
<span>Dates: </span>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="DetailsURL">
<a style="font-weight:normal;margin-left:0.5em;" target="_blank" rel="nofollow" href="{.}">
<xsl:text>Full details...</xsl:text>
</a>
</xsl:template>
</xsl:stylesheet>
注意:在同一层次结构中进行一对一转换时,足以声明输入源中特定元素的规则并覆盖文本节点的内置规则(输出带有空规则的字符串值。