gpt4 book ai didi

Java Dom 解析器不会返回子节点

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

我正在尝试解析 XML 文档,但由于某种原因我无法从任何内容中获取任何子节点。我已经厌倦了我所知道的一切。我最初尝试使用 Dom4J,但在命名空间方面遇到了很大的困难。现在我尝试使用标准 DOM 解析器。

我已经阅读了 oracle 教程以及其他教程,但没有看到关于为什么我最基本的功能失败的建议。

我将首先分享我的代码:

package testingtemp;

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;

public class DomParser {

public static void main(String args[]){

try{

File inputFile = new File("C:\\Users\\jhamric\\Desktop\\Camt54.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
System.out.println("Root Element: "+doc.getDocumentElement().getChildNodes());

}catch (Exception e){
e.printStackTrace();
}

}

}

所以我只想返回根(即“文档”)的子节点。应该返回一个子节点。

<?xml version="1.0"?>

-<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04">


-<BkToCstmrDbtCdtNtfctn>


+<GrpHdr>


-<Ntfctn>

<Id>161RD2521JI00XSZ</Id>

<CreDtTm>2016-01-27T13:25:21</CreDtTm>

这只是我的 Xml 的一小部分,但您可以清楚地看到 BkToCstmrDbtCdtNtfctn 应作为打印屏幕中的子节点返回。相反,我的控制台输出如下所示:

Root Element: [Document: null]

它报告正确的根元素,但随后告诉我没有子节点。是什么赋予了?任何帮助将不胜感激!

最佳答案

您将看到 NodeList.toString 的输出,即 [Document: null]。这实际上并没有提供任何有意义的信息。

使用

NodeList nl = doc.getDocumentElement().getChildNodes();
System.out.println(nl.getLength());
if (nl.getLength() > 0)
System.out.println(nl.item(0).getNodeName());

验证您的元素是否存在。

关于Java Dom 解析器不会返回子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088019/

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