Oracle - Berkeley DB XML Java API - XML 查询以获取多个级别的属性值
使用 Java API 评估 Berkeley DB。以下是我的测试 XML 数据之一:
<master>
<env name="development">
<server name="tomcat1" ip="122.122.123.1">
<domain name="domain1">
<application name="GreatApplication1" status="enabled"/>
</domain>
<domain name="domain2">
<application name="GreatApplication2" status="enabled"/>
<application name="NotSoGreatApplication2" status="disabled"/>
<application name="GreatApplication3" status="enabled"/>
</domain>
</server>
</env>
</master>
使用以下查询字符串,我可以查询任何“服务器”的任何“域”上的应用程序及其状态:(假设 envs.dbxml 是我的 Xml 数据库)
collection('envs. dbxml')/master/env[@name=$name]/server/domain/application/@*/string()
我希望能够在此查询返回结果时获取各个服务器名称。如何才能做到这一点?此查询将依次返回所有应用程序和状态值。
Evaluating Berkeley DB with Java APIs. Following is one of my test XML data:
<master>
<env name="development">
<server name="tomcat1" ip="122.122.123.1">
<domain name="domain1">
<application name="GreatApplication1" status="enabled"/>
</domain>
<domain name="domain2">
<application name="GreatApplication2" status="enabled"/>
<application name="NotSoGreatApplication2" status="disabled"/>
<application name="GreatApplication3" status="enabled"/>
</domain>
</server>
</env>
</master>
With following query String, I can query applications and their status on any "domain" for any "server": (assuming envs.dbxml is my Xml db)
collection('envs.dbxml')/master/env[@name=$name]/server/domain/application/@*/string()
I want to be able to get the individual server names when this query returns results. How can that be achieved? This query will just return all the applications and status values one after other.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用:
或者,这个较短的形式:
解释:这里我们使用 XPath
|
(联合)运算符和XPath 2.0 语法,允许以下类型的表达式:expr/(expr)
和expr/func(argList)
类型的表达式Use:
Or, this shorter form:
Explanation: Here we use the XPath
|
(union) operator and the XPath 2.0 syntax that allows expressions of the kind:expr/(expr)
and expressions of the kindexpr/func(argList)