<?xml version="1.0" enCoding="UTF-8"?><HTML> <head/> <body> <div>Hello<a href="http://Google.com">this is the first</a>line.<p>This the second.<br/>And this the third one.</p></div> </body> </HTML>
到这一个:
<?xml version="1.0" enCoding="UTF-8"?><HTML> <head/> <body> <div> <p>Hello<a href="http://Google.com">this is the first</a>line.</p> <p>This the second.</p> <p>And this the third one.</p> </div> </body> </HTML>
我在想XSLT 1.0中的树木行走算法.复杂的是,例如随附的< a>链接.并且还存在< p>不应该删除.
愿有人帮我这个吗?非常感谢.
解决方法 这种转变:<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/transform"> <xsl:output method="xml" 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="div[text() and p]"> <div> <p> <xsl:apply-templates select="node()[not(self::p or preceding-sibling::p)]"/> </p> <xsl:apply-templates select="p | p/following-sibling::node()"/> </div> </xsl:template> <xsl:template match="p[text() and br]"> <xsl:apply-templates/> </xsl:template> <xsl:template match= "p/text() [preceding-sibling::node()[1][self::br] or following-sibling::node()[1][self::br] ]"> <p><xsl:value-of select="."/></p> </xsl:template> <xsl:template match="p/br"/></xsl:stylesheet>
当应用于提供的XML文档时:
<HTML> <head/> <body> <div>Hello <a href="http://Google.com">this is the first</a>line. <p>This the second.<br/>And this the third one.</p> </div> </body></HTML>
产生想要的,正确的结果:
<HTML> <head/> <body> <div> <p>Hello <a href="http://Google.com">this is the first</a>line. </p> <p>This the second.</p> <p>And this the third one.</p> </div> </body></HTML>总结
以上是内存溢出为你收集整理的XHTML.在段落中包含文本并使用XSLT 1.0转换为段落全部内容,希望文章能够帮你解决XHTML.在段落中包含文本并使用XSLT 1.0转换为段落所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)