Как я должен извлечь свойства из узла в Apache Jackrabbit из XML? - PullRequest
0 голосов
/ 27 января 2019

Я играл с примером номер три здесь http://jackrabbit.apache.org/jcr/first-hops.html, однако для меня остается неясным, как получить доступ к свойствам узла.

На первом снимке экрана Have access to jcr prop

Я использовал отладчик из моей IDE и оценил это выражение

session.getNode("/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn").getProperty("jcr:xmltext/jcr:xmlcharacters").getString().trim();

Вы можете увидеть, как я могу получить доступ к "jcr: xmltest / jcr: xmlcharacters "и имеют 2 в результате.Однако когда я пытаюсь получить эту информацию, вывести это свойство из узла, я не могу выполнить эту операцию, как на этом снимке экрана.Cannot get props

Это фрагмент кода на скриншоте выше:

var node = session.getNode("/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn");
var properties = node.getProperties();
List<string> result = new ArrayList<>();
while(properties.hasNext()) {
    Property property = properties.nextProperty();
    result.add(property.getString().trim());
}
return result;

Вы можете видеть, как я получаю в ответ только значение, содержащее "nt: unstructured".

К сожалению, я не смог найти много примеров кода в Интернете, на Github и т. Д., Многие устарели, а также нет книг, как для Scrapy или других библиотек / фреймворков.

Заранее спасибо.

Хорошего дня!

Davide

1 Ответ

0 голосов
/ 28 января 2019

В первом случае вы смотрите на свойства:

/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn/jcr:xmltext

Во втором случае:

/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn

Обратите внимание на разные пути.

...