xml解析无法使用Java读取xml文档
我试图解析一个XML文件:一个web上的站点地图。我试过很多组合,但都没有成功。我确信我很接近,但我没有发现任何有效的东西
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
org.w3c.dom.Document doc = factory.newDocumentBuilder().parse(new URL("https://www.lavisducagou.nc/page-sitemap.xml").openStream());
System.out.println("XML = " + doc);
输出:
XML = [#document: null]
为什么输出是[#document: null]
文件
("https://www.lavisducagou.nc/page-sitemap.xml
)
它确实是在线的
提前感谢你的帮助
# 1 楼答案
实际上,您的XML文档已正确解析和加载。 您只是对
doc.toString()
的相当愚蠢的输出感到恼火 (在评估"XML " + doc
时在幕后调用)事先您知道需要的XML标记名(
urlset
,url
,loc
,lastmod
) 以及它们是如何相互嵌套的要继续了解XML,只需在树中行走即可 提取你想要的东西。例如:
您将得到如下输出:
# 2 楼答案
您需要迭代并查找xml元素。下面是一个在url节点中获取的loc和lastmod节点的解决方案
输出为:
# 3 楼答案
您看到的只是
com.sun.org.apache.xerces.internal.dom.DocumentImpl
的toString实现因为文档没有节点值,所以它是空的。您需要做的是获取childNodes并进行迭代,以获取所需的详细信息
由于防火墙问题,我无法使用java访问URL,但这里有一个来自同一文件本身的小摘录
刚刚用以下步骤更新了代码:
样本输出: