我嘗試使用Ximpleware讀取XML文件。我的問題是,我沒有找到有用的例子或教程。在java中閱讀vtd-xml(ximpleware)xml
我想讀下面的XML:
<title name="bliblablu">
<program>
<text lang="1">
<![CDATA[English]]>
</text>
<text lang="2">
<![CDATA[Francais]]>
</text>
<text lang="3">
<![CDATA[Deutsch]]>
</text>
</program>
<program>
<text lang="1">
<![CDATA[Afrikans]]>
</text>
<text lang="2">
<![CDATA[Portuges]]>
</text>
<text lang="3">
<![CDATA[Italiano]]>
</text>
</program>
</title>
而我要的是一個簡單的打印出如下圖所示。
1:英語 2:法語 3:德語 1:Afrikans 2:Portuges 3:意大利語
我怎樣才能做到這一點? 我看了下面的SO Answer,SO Answer。 我試着用下面的代碼,但它不起作用。
import com.ximpleware.AutoPilot;
import com.ximpleware.NavException;
import com.ximpleware.VTDGen;
import com.ximpleware.VTDNav;
import com.ximpleware.XPathEvalException;
import com.ximpleware.XPathParseException;
...
final VTDGen vg = new VTDGen();
vg.parseFile(file.getAbsolutePath(), false);
VTDNav vn = vg.getNav();
final AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/title/program/text");
Log.d(ap.evalXPathToString());
int i = 0, j = 0;
String languageNr = "", languageText ="";
while ((i = ap.evalXPath()) != -1) {
j = vn.getAttrVal("lang");
// z = vn.toNormalizedString(i);
if (j != -1) {
languageNr = vn.toString(j);
AutoPilot ap2 = new AutoPilot(vn);
ap2.resetXPath();
ap2.selectXPath("/ticker/program/text");
ap2.selectElement(Integer.toString(j));
languageText = ap2.evalXPathToString();
}
Log.d(languageNr);
Log.d(languageText);
}
我的輸出是:
1:英語 2:英語 3:英語 1:英語 2:英語 3:英語
感謝每一種幫助 盧卡斯
如何讀取的Java XML文件在此說明https://www.mkyong.com/java/how- to-read-xml-file-in-java-dom-parser/ –