簡體   English   中英

vtd-xml xpath,如何使用變量表達式?

[英]vtd-xml xpath, how to use variable expression?

我正在嘗試從xml獲取與用戶輸入字符串匹配的特定單詞的定義:

<?xml version="1.0" encoding="UTF-8" ?>
<diction>
<article>
<key>a</key>
<definition>
    ένας, μια, μία, ένα
</definition>
</article>
<article>
<key>a</key>
<definition>
α (στερητικό)
</definition>
</article>
<article>
<key>all</key>
<definition>
όλος, όλη, όλο
</definition>
</article>
<article>
<key>a.m</key>
<definition>
π.μ., πρωί
</definition>
</article>
<article>
<key>base</key>
<definition>
base
</definition>
</article>
</diction>

碼:

ap.declareVariableExpr("myexpr", xmlInput.getText().toString().replaceAll("\\s+$", ""));

ap.selectXPath("/diction/article/key[local-name()=string($myexpr)]");
//ap.evalXPathToString();
//ap.selectXPath("/diction/article/key");
ap.bind(vn);

int i;
while ((i=ap.evalXPath()) !=-1){
    i=vn.getText();
    vn.push();
    if(vn.toElement(VTDNav.NEXT_SIBLING, "definition")) {
        int j = vn.getText();
        if (j != -1)

        parsedData=parsedData+"word: " +        vn.toNormalizedString(i) + "\n"
        + "definition: " + vn.toNormalizedString(j) +"\n";
        Log.i("first", parsedData);
    }
    vn.pop();
}
ap.resetXPath();

上面的代碼為我提供了所有單詞/定義,而不僅僅是與輸入字符串匹配的單詞/定義。 xpath表達式正確嗎? 我做錯了什么?

AutoPilot中有一個稱為defineVariableExpression()的函數,該函數使您可以聲明變量表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM