gpt4 book ai didi

java - 检查 xml 元素是否存在的更简单方法

转载 作者:行者123 更新时间:2023-11-30 10:30:02 24 4
gpt4 key购买 nike

在 Java 中,我使用 dom 解析器解析 xml。我想知道是否每个元素都需要检查该元素是否存在于 XML 中..

例如,现在我在保存元素内部的值时执行此检查:

 //Email
NodeList nListEmail = BuyerPartyElement.getElementsByTagName("Email");
if(nListEmail.getLength() != 0){
docOrder.replaceItemValue("BestellerEmail", nListEmail.item(0).getTextContent());
}

但这对每个元素都是必须的吗?因为如果该元素在 1 个 XML 中不存在,那么我认为我会得到一个空错误。

有什么想法吗?

编辑:

为了让它更简单,我为此创建了两个方法:

    public Element getElement(NodeList nodeList, String ElementName){
if(nodeList.getLength() != 0){
return (Element) nodeList.item(0);
}else{
System.out.println("ELEMENT : " + ElementName + " NOT EXISTING IN XML");
return null;
}
}


public String getValueFromElement(Element element, String ElementName){

NodeList nodeList = element.getElementsByTagName(ElementName);
if(nodeList.getLength() != 0){
return nodeList.item(0).getTextContent();
}else{
System.out.println("ELEMENT : " + ElementName + " NOT EXISTING IN XML");
return null;
}

}

然后我会检查:

if(CXMLHandlerObj.getValueFromElement(buyerPostalAddressElement, "City") != null){

最佳答案

您可以 validate your XML input against一个XML-Schema以确保文档具有假定的结构。这将为您节省一些空检查。

我还建议使用 XPath在您的 dom 中导航。这将为您节省一些额外的检查。

如果您的代码仍然因空检查而臃肿,您可以考虑使用 Java 8 Optionals

关于java - 检查 xml 元素是否存在的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43761394/

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