簡體   English   中英

如何通過名稱空間獲取具有相同標簽名稱的所有元素?

[英]How to obtain all the elements with the same tag name by namespace?

我需要獲取所有<media:content/>元素的url屬性列表:

這是我的XML:

<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/'>
    <channel>
        <item>
            <media:group>
                <media:content url='https://valor'/>
            </media:group>
        </item>
        <item>
            <media:group>
                <media:content url='https://valor'/>
            </media:group>
        </item>    
    </channel>
</rss>

我試過了,但是contents.getLength()返回0個元素

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(inputStream);
NodeList contents = doc.getElementsByTagNameNS("http://search.yahoo.com/mrss/", "content");

我也嘗試使用XPath ...但是同樣, contents.getLength()返回0個元素

XPathFactory factory2 = XPathFactory.newInstance();
XPath xpath = factory2.newXPath();
// XPathExpression expr = xpath.compile("//content"); 
XPathExpression expr = xpath.compile("//*[name()='content']");
NodeList contents = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);

建議?

您首先需要設置factory.setNamespaceAware(true) 然后, getElementsByTagNameNS應該起作用。

暫無
暫無

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

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