给出以下XML文件:
<a m="1">
<b n="1" o="2">
<c p="3">3</c>
<d/>
</b>
<b n="1" o="2">
<c p="3">3</c>
<d q="3">
<e r="2">2</e>
</d>
<f s="1"/>
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我如何找到以下表达式:
1. count(/*/*/*) = 5
2. count (/*//*) = 6
3. count (/*/*//@*) = 4
Run Code Online (Sandbox Code Playgroud)
我用Java中的那些xpath表达式运行xml文件,但我不明白为什么答案是5,6,4.
有人可以解释我怎么能计算出上述公式(不使用java代码),而是要了解这些命令的实际概念/*/*/*,并/*//*和/*/*//@*?
非常感激
/*/*/*
Run Code Online (Sandbox Code Playgroud)
这将选择顶级元素的所有"大儿-它们是:c,d,c,d
/*//*
Run Code Online (Sandbox Code Playgroud)
这就选择了顶部元件的所有后代元素:b,c,d,b,c,d,e,f
/*/*//@*
Run Code Online (Sandbox Code Playgroud)
这将选择两种或顶元素的儿童及其后代的所有属性:n,o,p,n,o,p,q,r,s.
因此,产生的计数必须分别为:
4, 8, 9
Run Code Online (Sandbox Code Playgroud)
基于XSLT的验证:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="count(/*/*/*)"/>
=========
<xsl:value-of select="count(/*//*)"/>
=========
<xsl:value-of select="count(/*/*//@*)"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
当对提供的XML文档执行此转换时(永远不会,永远不会出现带有图片的文档!!!):
<a m="1">
<b n="1" o="2">
<c p="3">3</c>
<d/>
</b>
<b n="1" o="2">
<c p="3">3</c>
<d q="3">
<e r="2">2</e>
</d>
</b>
<f s="1"/>
</a>
Run Code Online (Sandbox Code Playgroud)
将评估Xpath表达式并将其结果复制到输出中:
4
=========
8
=========
9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |