1

JavaAPIを使用したBerkeleyDBの評価。以下は私のテストXMLデータの1つです。

<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()

このクエリが結果を返すときに、個々のサーバー名を取得できるようにしたいと思います。どうすればそれを達成できますか?このクエリは、すべてのアプリケーションとステータス値を次々に返します。

4

1 に答える 1

2

使用:

(
  /master/env[@name=$name]/server/@name
 |
  /master/env[@name=$name]/server/domain/application/@*
)
  /string(.)

または、この短い形式:

/master/env[@name=$name]/server/(@name|domain/application/@*)/string(.)

説明: ここでは、XPath |(共用体) 演算子と、種類の式を許可する XPath 2.0 構文を使用します:expr/(expr) および種類の式expr/func(argList)

于 2011-04-03T15:50:45.960 に答える