1

I have the following xml:

<config xmlns="http://www.someurl.com">
  <product>
    <brand>
      <content />
    </brand>
  </product>
</config>

I'm reading it nicely into JDOM.

However, when I try to use Jaxen to grab the contents, I can't seem to get anything.

Here's an example of what doesn't seem to work:

XPath xpath = new JDOMXPath("config");

SimpleNamespaceContext namespaceContext = new SimpleNamespaceContext();
namespaceContext.addNamespace("", "http://www.someurl.com");

xpath.setNamespaceContext(namespaceContext);

assert xpath.selectNodes(document).size() > 0 : "should find more than 0";

This assertion always fails.

What am I doing wrong?

4

1 に答える 1

1

プレフィックスを割り当てる必要があります。その呼び出しをaddNamespace( "hopfrog"、 "http:// ...");にします。次に、XPath( "hopfrog:config");を作成します。

XMLのプレフィックスは、実際のデータモデルの一部ではないことに注意してください。実際のデータモデルは、各要素と属性に、場合によっては空白のURLを割り当てます。正しいURLにバインドされている限り、XPathで任意のプレフィックスを使用できます。空白にしたいURLなので、プレフィックスを「空白」にバインドします。

于 2010-01-29T02:57:06.297 に答える