【发布时间】:2019-08-28 13:49:13
【问题描述】:
我有一个应用程序,它使用 Javascript 解析从 Web 服务返回的 XML 数组,并对其进行迭代并将其构建到表体中。直到最近它一直没有问题。
我们对 Web 服务从其中返回结果的数据库进行了一些更改,其中现在有一些列可能包含空白或空值。
当遇到具有空白或空值的 childNode 时,Javascript 无法运行。
所以我的问题是如何处理这些空白,以便 Javascript 将在表体中构建一个空字符串并继续遍历 xml 数组?
我尝试在 for 循环中的 Javascript 中构建一个 if 语句,以用 '' 替换空白或 null 值,但我不确定它是否可以通过构建表体的方式来实现。
for (i = 0; i < x.length; i++) {
tbody += "<tr><td class=col1>" +
x[i].getElementsByTagName("CheckInDate")[0].childNodes[0].nodeValue +
"</td><td class=col2>" +
x[i].getElementsByTagName("CheckOutDate")[0].childNodes[0].nodeValue +
"</td><td class=col3>" +
x[i].getElementsByTagName("CheckInOut")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("address")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("names")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("companyName")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue.substr +
"</td><td>" +
x[i].getElementsByTagName("contactPhoneNum")[0].childNodes[0].nodeValue +
"</td ></tr >";
}
作为一个现有的应用程序,我不想重建使用这种方法构建表的所有函数,所以我希望有一个我没有看到的简单解决方案。
【问题讨论】:
-
“运行失败”是什么意思?是否报告了错误?
-
请分享浏览器控制台错误,我建议您使用 map 与 join 或 reduce 来获得这个 html 字符串
标签: javascript xml xml-parsing