我刚刚恢复了我的XPath技能 - 这个Xslt and XPath Quick Reference sheet是一个非常有用的参考 - 它没有深入讨论,但它确实列出了可用的内容以及您可能想要搜索的更多信息。
之前联系的w3schools教程并不是那么好 - 需要很长时间才能涵盖很多方面 - 但它仍然值得一读。
一种方法是仅将xslt文件中所需的信息提取到新的xml中,并使用这个新的xml作为数据基础进行进一步处理
如果我需要做一些XPath,我只是调整其中一个例子。
- child :: node()选择上下文节点的所有子节点,无论节点类型如何
- attribute :: name 选择上下文节点的名称属性
- attribute :: * 选择上下文节点的所有属性
- descendant :: para 选择上下文节点
的para元素后代
- ancestor :: div 选择上下文节点的所有 div 祖先
- ancestor-or-self :: div 选择上下文节点的 div 祖先,如果上下文节点是div元素,则选择上下文节点< / LI>
- descendant-or-self :: para 选择上下文节点的 para 元素后代,如果上下文节点是 para 元素,上下文节点
- self :: para 选择上下文节点(如果它是 para 元素,否则不选择任何内容
- child :: chapter / descendant :: para 选择上下文节点的子元素子元素的 para 元素后代
- child :: * / child :: para 选择上下文节点的所有 para 孙子
- / 选择文档根目录(始终是文档元素的父目录)
- / descendant :: para 选择与上下文节点相同的文档中的所有 para 元素
- / descendant :: olist / child :: item 选择所有具有 olist 父级且与上下文节点位于同一文档中的项目元素
- child :: para [position()= 1] 选择上下文节点的第一个 para 子项
- child :: para [position()= last()] 选择上下文节点的最后一个 para 子项
- child :: para [position()= last() - 1] 选择上下文节点的最后一个 para 子项
- child :: para [position()&gt; 1] 选择除了上下文节点的第一个子节点之外的上下文节点的所有 para 子节点
- follow-sibling :: chapter [position()= 1] 选择上下文节点的下一个章节兄弟
- previous-sibling :: chapter [position()= 1] 选择上一个章节上下文节点的兄弟
- / descendant :: figure [position()= 42] 选择文档中的第四十二个数字元素
- / child :: doc / child :: chapter [position()= 5] / child :: section [position()= 2] 选择第五个章节的第二部分 doc 文档元素
- child :: para [attribute :: type =“warning”] 选择具有值警告的type属性的上下文节点的所有 para 子项强>
- child :: para [attribute :: type ='warning'] [position()= 5] 选择具有a的上下文节点的第五个 para 子节点带值警告的type属性
- child :: para [position()= 5] [attribute :: type =“warning”] 选择上下文节点的第五个 para 子节点具有值警告
的type属性
- child :: chapter [child :: title ='Introduction'] 选择具有一个或多个标题子节点的上下文节点的子节点,其字符串值等于引言
- child :: chapter [child :: title] 选择具有一个或多个标题子项的上下文节点的章节子项
- child :: * [self :: chapter或self :: appendix] 选择上下文节点的章节和附录子项< / LI>
- child :: * [self :: chapter或self :: appendix] [position()= last()] 选择最后章或附录上下文节点的子项
可以找到深入的文档here。这些例子也来自那里。