可以用xsl区分<node/>和<node></node>吗?
发布于 2011-05-31 19:29:13
XSLT在解析后的XML数据模型(XML树)上工作。XML数据模型对具有单独开始和结束标记的自关闭元素和空元素没有区别。它们都是完全没有子节点的元素(文本、元素、注释等)。因此,在XSLT处理程序将其传递给给定XML结构的阶段,所有这些词汇变体都已经丢失了。
我想到的唯一解决方案是使用解析器,该解析器具有一些扩展功能,可以将词法数据添加到解析树中。这可以基于通过添加表示不同词汇事件的新元素来修改树。然后,您的XSLT代码可以识别解析器添加的那些节点,并进行相应的处理。
但是最后,如果您不是因为感兴趣而问这个问题,而是真的需要在您的XSLT文档中区分<node/>和<node></node>,那么您的工具链/流程模型中可能存在问题。
发布于 2011-05-31 18:25:48
不,也不使用任何符合规范的XML处理器。
(除非您有一些词法信息,否则可以用来推断使用了哪种形式的标记-也许是SAX定位器。)
https://stackoverflow.com/questions/6186135
复制相似问题