gpt4 book ai didi

java - 如何通过命名空间获取所有具有相同标签名的元素?

转载 作者:行者123 更新时间:2023-12-01 10:07:19 25 4
gpt4 key购买 nike

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

这是我的 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 应该可以工作。

关于java - 如何通过命名空间获取所有具有相同标签名的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com