以下文章http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT3.html表示XPATH认为以下是节点:
-
Root
-
元素
-
文字
-
属性
-
评论
-
处理指令
-
命名空间
我想知道的是属性'id'及其值'2'是否被认为是两个不同的节点?例如 <name id="2">text</name>
或者文本节点只是元素之间的'data' http://www.w3.org/XML/Datamodel.html?我的直觉告诉我XPATH会考虑在这个例子中有4个节点 - 'name'元素,属性'id'文本值'2'和文本值'text' .
2 回答
The string value of an attribute node is just a string -- it isn't a node itself .
Any string value of a node should not be confused with any text node . 文本节点是元素节点的子节点,它本身具有字符串值 .
通常,文本节点的字符串值不是我们在XML文档的序列化中呈现的字符串,例如:
由
/*/text()
选择的文本节点的字符串值不是"M & M"
,它是:属性节点具有名称和值 . 它们不是单独的节点 . 以下XML:
...表示三个节点:1)名称为
name
的元素; 2)name
的子节点,它是文本节点; 3)属性节点,其名称为id
,其值为2
.来自the spec:
然后: