Получение текста атрибута в XML с использованием vtd-xml в Java - PullRequest
4 голосов
/ 14 мая 2011

Учитывая следующее xml:

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

Я использую vtd-xml с XPath для получения '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 экранирован через URL.Vtd-xml выполняет URL-UNescape или я должен делать это сам?

С уважением

Ответы [ 2 ]

5 голосов
/ 14 мая 2011

Использование vn.getAttributeVal(vn.toString(node))

3 голосов
/ 21 мая 2011

Другой способ сделать это -

vn.toString(node+1) 

при условии, что узел не равен -1.Что касается экранирования URL, часть, у вас есть toString(), toRawString() и toNormalizedString() на выбор

...