finding.getnameditem中的属性在解析xml后返回null

f87krz0w  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(322)

我目前是第一次使用api,检索数据时遇到了一些问题。
xml文件如下所示:

<schedule>
...
<scheduledepisode>
  <episodeid>22441</episodeid>
  <title>Ekonyheter </title>
  <starttimeutc>2012-09-19T04:00:00Z</starttimeutc>
  <endtimeutc>2012-09-19T04:03:00Z</endtimeutc>
  <program id="83" name="Ekot" />
  <channel id="164" name="P3" />
</scheduledepisode>
<scheduledepisode>

所以我用 NodeList nodelist1 = doc.getElementsByTagName("scheduledepisode"); 得到所有的 scheduledepisode 元素,然后我认为要恢复标题下的数据,我可以简单地使用以下内容:

System.out.println(node.getAttributes().getNamedItem("title").getTextContent());

然而,这只返回空值,我不明白为什么,有人能解释我在这里丢失了什么。据我所知,title元素是 scheduledepisode 元素。这不对吗?
节点列表的长度与 scheduledepisodes 所以我假设我得到了正确的元素。
代码如下所示:

NodeList nodelist1 = doc.getElementsByTagName("scheduledepisode");
for (int i = 0; i < nodelist1.getLength(); i++)
{
      Node node = nodelist1.item(i);
      if (node.getNodeType() == Node.ELEMENT_NODE )
      {
           if (node.getAttributes().getNamedItem("title") != null) {
                 System.out.println(node.getAttributes().getNamedItem("title").getTextContent());
           }
      }
}
imzjd6km

imzjd6km1#

<title> 是元素而不是属性 <scheduledepisode> , getAttributes() 不起作用。因此,使用 getElementsByTagName 再一次:

NodeList se_nodelist = doc.getElementsByTagName("scheduledepisode");
for (int i = 0; i < nodelist1.getLength(); i++)
{
      Node node = nodelist1.item(i);
      if (node.getNodeType() == Node.ELEMENT_NODE )
      {
           if (node.getElementsByTagName("title") != null) {
                 System.out.println(node.getElementsByTagName("title").item(0).getTextContent());
           }
      }
}

相关问题