gpt4 book ai didi

java - 在 ELEMENT_NODE 的情况下,node.getNodeType 无法按预期工作

转载 作者:行者123 更新时间:2023-12-02 02:59:39 32 4
gpt4 key购买 nike

我试图仅获取所有 elemnt 类型节点,然后我需要执行一些特定操作,但是在 ELEMENT_NODE 的情况下,node.getNodeType 无法按预期工作 - 它会进入所有子节点的 if block

示例 xml -

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.05">
<CstmrPmtStsRpt>
<GrpHdr>
<MsgId>00990119071512383635</MsgId>
<CreDtTm>2019-07-15T12:38:36.304+05:30</CreDtTm>
<InitgPty>
<Nm>appSend</Nm>
</InitgPty>
</GrpHdr>
....

这是我的代码 - 我想做的是对于像 MsgId 这样的元素我想做一些事情,对于 GrpHdr 我想做一些不同的操作

  try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringComments(true);
dbf.setValidating(true);
dbf.setNamespaceAware(true);
dbf.setIgnoringElementContentWhitespace(true);

DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File(fileName));
doc.getDocumentElement().normalize();

NodeList nodeList = doc.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
node.normalize();

if( node.getNodeType() == Node.ELEMENT_NODE ){
// do operation for only elements
}else{
// do other operation for non elements
}


}

}catch (Exception e){

}

有人遇到过类似的问题吗

提前谢谢

最佳答案

嗯,以下不是一个好的解决方法 - 但这是我修复它的方法

元素 - 始终只有一个子元素。

所以我用下面的代码调整了它 -

  if( node.getChildNodes().getLength() != 1 ){
// do operation for only non - elements
}else{
// do other operation for elements
}

我想说这只是一种解决方法,而不是一个好的解决方案

关于java - 在 ELEMENT_NODE 的情况下,node.getNodeType 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058971/

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