Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过XML中的特定标记名查找元素是否存在_Java_Xml_Optional_Tagname - Fatal编程技术网

Java 通过XML中的特定标记名查找元素是否存在

Java 通过XML中的特定标记名查找元素是否存在,java,xml,optional,tagname,Java,Xml,Optional,Tagname,我有一个XML文件,其中一些子标记(子节点元素)是可选的。 e、 g 如有任何见解或建议,我们将不胜感激。 提前感谢。可能是您的节点列表不是空的,而是空的。你能试着像这样修改你的代码,看看会发生什么吗 NodeList restElmLst = fstelm_Note.getElementsByTagName("rest"); if (restElmLst != null && !restElmLst.isEmpty()) { Element restElm = (Ele

我有一个XML文件,其中一些子标记(子节点元素)是可选的。 e、 g

如有任何见解或建议,我们将不胜感激。
提前感谢。

可能是您的节点列表不是空的,而是空的。你能试着像这样修改你的代码,看看会发生什么吗

NodeList restElmLst = fstelm_Note.getElementsByTagName("rest");
if (restElmLst != null && !restElmLst.isEmpty())
{
    Element restElm = (Element)rests.item(0);
...

等。(双重检查语法等,因为我不是在编译器前面。)

您的要求非常不清楚,但我很可能使用该包来解析您的XML文档

看看:


但是你应该试着解释你试图解决的一般问题,而不是你面临的具体问题。但是这样做,1。你可能会得到更好的答案。当前选择的路径可能不是最佳路径

我也遇到了同样的问题(使用getElementsByTagName()获取XML文件中的“可选”节点),因此我可以根据经验判断如何解决它。当没有找到匹配的节点时,getElementsByTagName不会返回null;相反,它返回一个长度为零的NodeList对象

正如您可能猜到的,在尝试获取XML文件内容之前,检查XML文件中是否存在节点的正确方法类似于:

NodeList nl=element.getElementsByTagName(“myTag”);
如果(nl.getLength()>0){
value=nl.item(0.getTextContent();
}

确保指定一个“默认”值,以防找不到标记。

尝试以下方法

bool hasCity = OrderXml.Elements("City").Any();

其中OrderXml是父元素。

首先需要创建
节点列表
,然后检查
节点列表
的长度,以检查xml字符串中是否存在当前元素

NodeList restElmLst = fstelm_Note.getElementsByTagName("rest");

if (restElmLst.getLength() > 0) {
    String restVal = restElm.getElementsByTagName("rest").item(0).getTextContent(); 
}                               

没有足够的信息。发布出现问题的代码,并指出NPE的抛出位置。嗨,Pasacal,谢谢你的建议。XPath是一个web服务(需要internet才能运行代码)?我可以使用XPath查询XML文档吗?它与XQuery类似吗?我在配置XQuery时遇到一些问题,因此无法解决。你能推荐一些我可以使用XPath或XQuery的教程吗?谢谢你抽出时间。
bool hasCity = OrderXml.Elements("City").Any();
NodeList restElmLst = fstelm_Note.getElementsByTagName("rest");

if (restElmLst.getLength() > 0) {
    String restVal = restElm.getElementsByTagName("rest").item(0).getTextContent(); 
}