为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 Java 读取 XML 文档

无法使用 Java 读取 XML 文档

有只小跳蛙 2021-08-19 16:34:48
我正在尝试解析一个 XML 文件:网络上的站点地图。我尝试了很多组合,但都没有成功。我确定我很接近,但我没有发现任何工作......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)确实在线。在此先感谢您的帮助。
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您正在查看的只是 toString 的实现 com.sun.org.apache.xerces.internal.dom.DocumentImpl


public String toString() {

    return "["+getNodeName()+": "+getNodeValue()+"]";

}

由于文档没有节点值,因此它为空。您需要做的是获取 childNodes 并迭代并获取所需的详细信息。


由于防火墙问题,我无法使用 java 访问 URL,但这里有来自同一文件本身的一小段摘录。


<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl"  href="//www.lavisducagou.nc/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>

<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>

    <loc>https://www.lavisducagou.nc/</loc>

    <lastmod>2018-07-14T11:30:25+11:00</lastmod>

  </url>

  <url>

    <loc>https://www.lavisducagou.nc/sinscrire/</loc>

    <lastmod>2018-05-03T16:58:35+11:00</lastmod>

  </url>

</urlset>

刚刚通过以下步骤更新了您的代码:


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

NodeList nodeList = doc.getChildNodes();

for (int i=0; i<nodeList.getLength();i++) {

   System.out.println(nodeList.item(i).getNodeName());

}

示例输出:


XML = [#document: null]

xml-stylesheet

urlset


查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信