以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 两个看似简单却难解的问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=66472) |
-- 作者:宇义 -- 发布时间:8/27/2008 4:17:00 PM -- 两个看似简单却难解的问题 1,如何判断当前节点类型 假设一个模板同时匹配属性和元素,那么在这个模板内部如何判断匹配的结点类型? <xsl:template match="@* | *"> 2,如何判断两个节点为同一个 <xml> <xsl:variable name="node1" select="node1" /> 显然不行,判断的是内容是否相同,这里非同一节点因其内容均为test所以为true。 我暂时用 <xsl:value-of select="generate-id(node1) = generate-id(node2)" />可行,但担心效率问题。 |
-- 作者:Qr -- 发布时间:8/28/2008 12:51:00 PM -- 1、确实找不到判断的方法或函数,也许W3C觉得这样做没意义吧 2、判断两个节点为同一个,除了generate-id(),好象没有更好的办法了。 就算是元素名和值都一样,还有position的问题,比如祖先节点、子孙节点,用代码去遍历恐怕效率更低。 |
-- 作者:宇义 -- 发布时间:8/28/2008 1:47:00 PM -- 多谢! 今天偶然发现exslt的has-same-child: <xsl:template name="set:has-same-node"> 看内容应该是判断节点相同的。个人觉得真的是很巧妙的方法。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |