Java 通过XML中的特定标记名查找元素是否存在
我有一个XML文件,其中一些子标记(子节点元素)是可选的。 e、 g 如有任何见解或建议,我们将不胜感激。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
提前感谢。可能是您的节点列表不是空的,而是空的。你能试着像这样修改你的代码,看看会发生什么吗
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();
}