Javascript - 无法从嵌套 XML 文件获取数据 - 无法读取 null 属性

标签 javascript xml

我从 Lightroom 导出了一个 Flash Web 画廊。它使用 XML 文件来显示每张照片的标题。我想要的只是从这个 XML 文件中提取描述标签,以便我可以将其发送给校对者。我一直在尝试使用 javascript 来执行此操作,但它不起作用。我拥有的代码能够为我提供所有描述的部分列表。我的代码遍历描述标签,但一旦遇到空标签:它(使用 Chrome 调试器)会抛出 Uncaught TypeError: Cannot read property 'data' of null 并停止执行。 我尝试检查“null !==”,但我猜测代码仍在运行,因为我仍然收到错误。

到目前为止,我确信 XML 是邪恶的。

XML 文件示例:

<?xml version="1.0" encoding="ISO-8859-1"?>
<mediaGroup>
  <amgVersion version="1.3" />
  <groupInfo>
    <bunch of="data I don't care about" />
  </groupInfo>
  <sizes>
    <bunch of="data I don't care about" />
  </sizes>

  <media totalGallerySize="104">
    <item>
      <title></title>
      <description>Yo! Look at that monkey on the bars</description>
      <imageID />
      <mediaType/>
      <renditions>
        <rendition size="large" />
        <rendition size="medium" />
        <rendition size="small" />
        <rendition size="thumb"  />
      </renditions>
    </item>
    <item>
      <title></title>
      <description>It's trying to parse XML files ahhaha</description>
      <imageID />
      <mediaType/>
      <renditions>
        <rendition size="large" />
        <rendition size="medium" />
        <rendition size="small" />
        <rendition size="thumb"  />
      </renditions>
    </item>
    <item>
      <title></title>
      <description></description>
      <imageID />
      <mediaType/>
      <renditions>
        <rendition size="large" />
        <rendition size="medium" />
        <rendition size="small" />
        <rendition size="thumb"  />
      </renditions>
    </item>
    <item>
      <title></title>
      <description>That missing description is going to make him angry</description>
      <imageID />
      <mediaType/>
      <renditions>
        <rendition size="large" />
        <rendition size="medium" />
        <rendition size="small" />
        <rendition size="thumb"  />
      </renditions>
    </item>  
  </mediaGroup>

对于我的代码,我有以下内容:

<script type="text/javascript">
  function loadXMLDoc(dname) {
if (window.XMLHttpRequest)
    {
    xhttp=new XMLHttpRequest();
    }
else
    {
    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
  } //end function

  xmlDoc=loadXMLDoc("group.xml");
  var z=xmlDoc.getElementsByTagName("item"), nameELEM;
  document.write(z.length);
  for (i=0;i<=z.length;i++){
    nameELEM=z[i].getElementsByTagName("description")[0];
    if (typeof nameELEM.firstChild.data !== "undefined") { //This is the line the error quotes
      //handle property xxx of documentFragment as required
      document.write(nameELEM.firstChild.data + "<br />");
    }
  }
 </script>

第 38 行:未捕获类型错误:无法读取 null 的属性“数据” 第 38 行 = if (typeof nameELEM.firstChild.data !== "undefined") {

最佳答案

而不是:

if (nameELEM.firstChild.data !== null)

尝试:

if (typeof nameELEM.firstChild.data !== "未定义")

关于Javascript - 无法从嵌套 XML 文件获取数据 - 无法读取 null 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795536/

相关文章:

javascript - 如果已安装,则通过深层链接打开 Android 应用程序;如果未安装,则返回到 Web

javascript - 在 JavaScript 中异步加载外部脚本

xml - 我可以使用 Scala 的内置 xml 处理程序忽略无效的 XML 字符吗?

java - String类型的Xml数据

xml - 基本的 DOM XML 解析器需要什么?

JavaScript 定时事件

javascript - 图像上的 Google Analytics 事件跟踪不起作用

javascript - 将javascript变量添加到javascript src?

python - 使用python将xml文件发送到http

java - 错误 : Error parsing XML: unbound prefix