查找节点的唯一本地名称(以及唯一的节点结构)
Finding unique local-names of nodes (as well as unique node structure)
我正在尝试动态检测 xml 文件的结构以确定存在的唯一节点
即如果我有
<?xml version="1.0" encoding="UTF-8"?>
<nsX:bookstore xmlns:nsX="http://namespace1" xmlns:nsY="http://namespace2">
<nsX:bookList>
<nsX:book category="COOKING">
<nsX:title lang="en">Everyday Italian</nsX:title>
<nsY:stock>1</nsY:stock>
</nsX:book>
<nsX:book category="CHILDREN">
<nsX:title lang="en">Harry Potter</nsX:title>
<nsX:edition lang="en">2</nsX:edition>
<nsY:stock>0</nsY:stock>
</nsX:book>
<nsX:cd category="WEB">
<nsX:albumTitle lang="en">XQuery Kick Start</nsX:albumTitle >
<nsY:stock>1</nsY:stock>
</nsX:cd>
<nsX:tape category="WEB">
<nsX:title lang="en">Learning XML</nsX:title>
<nsY:year>1992</nsY:year>
</nsX:tape>
</nsX:bookList>
</nsX:bookstore>
并想生成一个包含我的独特对象类型的列表
book
cd
tape
我知道如何找到节点的不同值,但我需要的是找到节点的不同本地名称(我不知道用于此的命令)。
我可以使用循环来 return 每个项目的本地名称,但是 return 每个本地名称分别使我无法使用 distinct-values 函数。
我可以使用编程逻辑来处理 xQuery 的结果,但我更愿意只 return 正确的信息。任何建议将不胜感激。
最终,我还希望能够确定子节点的独特结构,这样我就可以看到我有 2 种不同类型的书(一种有书名,另一种有附加信息)以及CD 和磁带。检查这些东西是否存在很容易,但如果我不知道我在找什么,我想根据它们的节点结构来识别对象的独特类型,我需要知道如何找到它.
就像distinct-values(/*/*/*/local-name())
一样简单。
我正在尝试动态检测 xml 文件的结构以确定存在的唯一节点
即如果我有
<?xml version="1.0" encoding="UTF-8"?>
<nsX:bookstore xmlns:nsX="http://namespace1" xmlns:nsY="http://namespace2">
<nsX:bookList>
<nsX:book category="COOKING">
<nsX:title lang="en">Everyday Italian</nsX:title>
<nsY:stock>1</nsY:stock>
</nsX:book>
<nsX:book category="CHILDREN">
<nsX:title lang="en">Harry Potter</nsX:title>
<nsX:edition lang="en">2</nsX:edition>
<nsY:stock>0</nsY:stock>
</nsX:book>
<nsX:cd category="WEB">
<nsX:albumTitle lang="en">XQuery Kick Start</nsX:albumTitle >
<nsY:stock>1</nsY:stock>
</nsX:cd>
<nsX:tape category="WEB">
<nsX:title lang="en">Learning XML</nsX:title>
<nsY:year>1992</nsY:year>
</nsX:tape>
</nsX:bookList>
</nsX:bookstore>
并想生成一个包含我的独特对象类型的列表
book
cd
tape
我知道如何找到节点的不同值,但我需要的是找到节点的不同本地名称(我不知道用于此的命令)。
我可以使用循环来 return 每个项目的本地名称,但是 return 每个本地名称分别使我无法使用 distinct-values 函数。
我可以使用编程逻辑来处理 xQuery 的结果,但我更愿意只 return 正确的信息。任何建议将不胜感激。
最终,我还希望能够确定子节点的独特结构,这样我就可以看到我有 2 种不同类型的书(一种有书名,另一种有附加信息)以及CD 和磁带。检查这些东西是否存在很容易,但如果我不知道我在找什么,我想根据它们的节点结构来识别对象的独特类型,我需要知道如何找到它.
就像distinct-values(/*/*/*/local-name())
一样简单。