Узел запроса в XOM - PullRequest
       31

Узел запроса в XOM

1 голос
/ 04 января 2012

Я запрашиваю документ в XOM, получаю узел, а затем запрашиваю этот узел для другого узла. Тем не менее, запрос Node ведет себя так, как будто он запрашивает весь документ, а не только этот узел.

XML выглядит так:

<root>
  <someotherstuff>
    <DifferentNode>
      <Value1>different-value1</Value1>
    </DifferentNode>
    <Node>
      <Node>
        <Value1>value1</Value1>
        <Value2>value2</Value2>
      </Node>
      <Node>
        <Value1>value3</Value1>
        <Value2>value4</Value2>
      </Node>
      <!-- more Node's -->
    </Node>
  </someotherstuff>
</root>

И я делаю это:

Nodes nodes = document.query("//Node/Node", X_PATH_CONTEXT);
Node node = nodes.get(0);

Nodes innerNodes = node.query("/Value1");

И innerNodes содержит 0 детей. Когда я изменяю "/Value1" на "//Value1" (косая черта добавлена), тогда я получаю другое значение1, так что похоже, что он запрашивает весь документ, а не мой выбранный узел.

Как я могу запросить определенный узел в XOM?

1 Ответ

4 голосов
/ 04 января 2012

Когда ваш запрос начинается с одной косой черты, выполняется поиск корневого узла документа с заданным именем.Две косые черты в отличие от этого означают искать всех предков данного имени.Ваш запрос должен работать, если вы просто пропустите начальный слеш:

Nodes innerNodes = node.query("Value1");
...