簡體   English   中英

如何使用Jaxen選擇帶有空白名稱空間的內容?

[英]How do I select something with a blank namespace with Jaxen?

我有以下xml:

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

我正在JDOM中很好地閱讀它。

但是,當我嘗試使用Jaxen來抓取內容時,我似乎什么也得不到。

以下是似乎無效的示例:

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";

這個斷言總是失敗的。

我究竟做錯了什么?

您必須分配一個前綴。 調用addNamespace(“ hopfrog”,“ http:// ...”); 然后制作XPath(“ hopfrog:config”);

請記住,XML中的前綴不是真實數據模型的一部分。 實際數據模型為每個元素和屬性分配一個URL,可能為空白。 您可以在XPath中使用所需的任何前綴,只要它綁定到正確的URL。 由於您希望它為空白的URL,因此請將前綴綁定到“空白”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM