0

そのため、Xpath 1.0を使用し続けており、maxが機能していないようです。Xpathクエリは次のとおりです。

//m:REPORT_DATA[m:DATA_ITEM = 'LMP_PRC' and //m:INTERVAL_NUM[not(//INTERVAL_NUM > m:INTERVAL_NUM)]]/m:VALUE/text()

data_item = LMP_PRCを使用して、最大の間隔番号の値を見つけようとしています。機能していないのは、「and」の後に続く「max」だけです。

ありがとう

4

3 に答える 3

1

これは期待値を返しますか?2番目のサンプルでは、​​27.47472を返します。

//m:REPORT_DATA[m:DATA_ITEM='LMP_PRC' and not(m:INTERVAL_NUM < //m:INTERVAL_NUM)]/m:VALUE/text()
于 2012-10-25T08:13:36.890 に答える
1

あなたの部分表現

//m:INTERVAL_NUM[not(//INTERVAL_NUM > m:INTERVAL_NUM)]

述語内にあります。これは、ブール値のみを使用していることを意味します。この部分式が少なくとも1つのノードを選択する場合はtrueであり、これは常に実行されるため、条件は冗長です。

私はあなたがあなたの要件をもっと見ることなしにあなたが質問を訂正するのを手伝うことができません。ただし、ソースドキュメントが「巨大」である場合、これは「永遠に」かかることになります。ここで、「永遠」は「巨大」の2乗に比例する時間です。

于 2012-10-25T08:06:08.843 に答える
0

Javaを使用している場合は、XPath1.0に固執していません。XPath 2.0のJavaサポートは、長年にわたって利用可能でした(主に、Saxonからのみではありません)。片方の手を後ろで縛ってこの問題を解決するのではなく、仕事に適したツールをダウンロードするときが来ました。

于 2012-10-25T15:29:14.650 に答える