在java中使用vtd-xml获取xml中的属性文本

时间:2011-05-14 01:19:41

标签: java xml xpath vtd-xml

给出以下xml:

<JUT>
    <DDT>
        <SSG q="textGoal">Lorem ipsum...</SSG>
    </DDT>
    ....
    ...
</JUT>

我正在使用带有XPath的vtd-xml来检索'textGoal',如下所示:

        VTDGen vg = new VTDGen();
        vg.setDoc(xmlContent);
        vg.parse(false);
        VTDNav vn = vg.getNav();
        AutoPilot ap = new AutoPilot(vn);
        int node = 0;

        ap.selectXPath("//SSG[1]/@q");
        node = ap.evalXPath();
        if(node != -1) {
            myString = vn.toString(node);
        }

这使myString为'q'而不是'textGoal'。我有两个问题:

  1. 我做错了什么?
  2. 我知道'textGoal'是网址转义的。 vtd-xml是做URL-UNescape还是我自己必须这样做?
  3. 此致

2 个答案:

答案 0 :(得分:5)

使用vn.getAttributeVal(vn.toString(node))

答案 1 :(得分:3)

另一种方法是

vn.toString(node+1) 

假设节点不是-1。至于网址转义,您可以选择toString()toRawString()toNormalizedString()