1

javax.xml.xpath を使用して、XML ファイルに対して次の XQuery を実行するにはどうすればよいですか?

for $com in //RepoStatistics/Commits/Commit
  return 
    for $file in $com//File
      return element tuple {
        element path {
          string($file/Path)
        },
        element action {
          string($file/@action)
        },
        element date {
          string($com/@date)
        },
        element developer {
          string($com/@author)
        },
        element locAdd{
          if (not(empty($file/LocAdd)))
            then string($file/LocAdd)
            else 0
        },
        element locRem{
          if (not(empty($file/LocRem)))
            then string($file/LocRem)
            else 0
        }
      }

質問がばかげている場合は申し訳ありませんが、私は非常に初心者です。

4

2 に答える 2

2

Oracle JRE には XQuery サポートが付いていないと思うので、Java で XQuery を実行するには、Saxon 9 のようなサードパーティのライブラリをインストールする必要があります。次に、 http://www.saxonica.com/documentation/using-xquery/api-query.xmlで概説されているオプションがあります。

于 2012-11-15T18:29:30.500 に答える
2

XPath は XQuery のサブセットです。JDK には、javax.xml.path API を介して使用できる XPath の組み込み実装が付属しています (同じ API を、Saxon や Jaxen などの他の XPath 実装にも使用できます)。JDK で提供される XQuery エンジンはありませんが、サード パーティから多数のエンジンが提供されています。W3C XQuery ページにはいくつかの製品リストがありますが、簡単に試せるのは Saxon です。XQJ (パッケージ javax.xml.xquery) と呼ばれる Java から XQuery にアクセスするための「標準」API があり、Saxon および他のほとんどの Java ベースの XQuery 実装がサポートしています。

(Saxon には、s9api と呼ばれる別のインターフェイスもあり、XQJ の制限を回避するために設計されたものと、XSLT、XPath、XQuery、および XML スキーマを一貫した方法で処理する単一の統合 API を提供するために設計されたものがあります。これらすべてのテクノロジーをまとめて。)

于 2012-11-16T08:47:45.360 に答える