eclipse—使用java从xml字符串检索特定元素

w7t8yxp5  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(350)

下面是我的代码。我能够解析xml,如果它是xml格式的,我得到所有的值,例如:-第二部分我得到所有的值,因为它是xml格式的。当我访问模型时,应用程序终止。如何检查模型标签是否存在,我想检查标签是否存在值是否为空。

PartNo[i].setText(el.getElementsByTagName("PART_NO").item(0).getTextContent());

if(el.getNodeName().contains("MODEL"))
{
    Model[i].setText(el.getElementsByTagName("MODEL").item(0).getTextContent());
}

xml文档如下所示:

<root>
  <DataSet>
    <PartNo>aaa</PartNo>
    <Model>bbbb</Model>
  </DataSet>
  <DataSet>
    <PartNo>aaa</PartNo>
  </DataSet>
</root>
gywdnpxw

gywdnpxw1#

你的电话 el.getNodeName().contains("MODEL")) 正在检查 String 的节点名 el 包含 "MODEL" ,这显然是错误的。
读字里行间,我想你要查的是有没有对应的 Model 每个的元素 PartNo 元素,使用dom解析器可以这样做:

NodeList partNoElements = document.getElementsByTagName("PartNo");
for (int i = 0; i < partNoElements.getLength(); i++)
{
  Element partNoElement = partNoElements.item(i);

  PartNo[i].setText(partNoElement.getTextContent());

  Element modelElement = (Element)partNoElement.getNextSibling();
  if (modelElement != null && modelElement.getNodeName().equals("Model"))
  {
    Model[i].setText(modelElement.getTextContent());
  }
}

注意:这取决于元素的顺序始终如您所列,如果您要使用此代码,则应该由模式强制执行。

相关问题