text在迭代JavaScript XML中返回不需要的空文本值的内容
textContent returning unwanted empty text values in iteration JavaScript XML
我正在尝试提取XML文件widgets.xml
中<point>
节点的文本值。
我成功地获得了文本,但在for
循环的每次迭代之间,我也获得了不需要的空文本值。经过仔细调试,当在我的JavaScript文件底部调用lines[i].childNodes[j].textContent
时,问题似乎就开始了。
在我的Chrome调试器中,它在points[0][0]
处的第一个值似乎是一个向下和向左的小箭头,类似于你在键盘上的Return键上找到的那个。
我一直在摆弄它有一段时间了,但我似乎不知道出了什么问题。
textContent在迭代过程中到底在做什么?
这是代码:
XML
<?xml version="1.0" encoding="UTF-8"?>
<user>
<widgets>
<widget id="00" status="on">
<name>Bookings</name>
<phpfile>booking.php</phpfile>
</widget>
<widget id="01" status="on">
<name>Room Nights</name>
<phpfile>room_nights.php</phpfile>
</widget>
<widget id="02" status="on" currency_type="$">
<name>Revenue</name>
<phpfile>revenue.php</phpfile>
</widget>
<widget id="03" status="on">
<name>Visits</name>
<phpfile>visits.php</phpfile>
</widget>
<widget id="04" status="on">
<name>Website Traffic</name>
<phpfile>chart.php</phpfile>
<dataset>
<data>
<startdate>2014-10-01</startdate>
<enddate>2014-10-12</enddate>
<lines>
<line num="1" name="Booking Engine">
<point>2014-10-01, 132</point>
<point>2014-10-02, 123</point>
<point>2014-10-03, 171</point>
<point>2014-10-04, 99</point>
<point>2014-10-05, 72</point>
<point>2014-10-06, 85</point>
<point>2014-10-07, 102</point>
<point>2014-10-08, 107</point>
<point>2014-10-09, 124</point>
<point>2014-10-10, 132</point>
<point>2014-10-11, 136</point>
<point>2014-10-12, 131</point>
</line>
<line num="2" name="Revenue">
<point>2014-10-01, 123</point>
<point>2014-10-02, 99</point>
<point>2014-10-03, 65</point>
<point>2014-10-04, 201</point>
<point>2014-10-05, 123</point>
<point>2014-10-06, 156</point>
<point>2014-10-07, 123</point>
<point>2014-10-08, 76</point>
<point>2014-10-09, 45</point>
<point>2014-10-10, 123</point>
<point>2014-10-11, 190</point>
<point>2014-10-12, 143</point>
</line>
</lines>
</data>
</dataset>
</widget>
<widget id="05" status="on">
<name>Tips</name>
<phpfile>tips.php</phpfile>
</widget>
<widget id="06" status="on">
<name>Recent Bookings</name>
<phpfile>recent_bookings.php</phpfile>
</widget>
<widget id="07" status="on">
<name>Timeline</name>
<phpfile>timelines.php</phpfile>
</widget>
<widget id="08" status="on">
<name>Employees</name>
<phpfile>employees.php</phpfile>
</widget>
<widget id="09" status="on">
<name>Daily Progress</name>
<phpfile>daily_progress.php</phpfile>
</widget>
</widgets>
</user>
和脚本:
JS
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getXmlGraphData();
//Gets the XML data from the widgets.xml file
function getXmlGraphData() {
var request = new XMLHttpRequest();
var user;
var lines = [];
var points = [[]];
request.open("GET", "widgets.xml", false);
request.send();
var xml = request.responseXML;
var lines = xml.getElementsByTagName("line");
for (var i = 0; i < lines.length; ++i) {
if (!lines) {
lines = [];
}
for (var j = 0; j < lines[i].childNodes.length; ++j) {
if (!points[i]) {
points[i] = [];
}
points[i][j] = lines[i].childNodes[j].textContent; //the problem begins here
}
}
document.write(points);
}
});
</script>
输出
注意值之间的差距:
,2014-10-01, 132, ,2014-10-02, 123, ,2014-10-03, 171, ,2014-10-04, 99, ,2014-10-05, 72, ,2014-10-06, 85, ,2014-10-07, 102, ,2014-10-08, 107, ,2014-10-09, 124, ,2014-10-10, 132, ,2014-10-11, 136, ,2014-10-12, 131, , ,2014-10-01, 123, ,2014-10-02, 99, ,2014-10-03, 65, ,2014-10-04, 201, ,2014-10-05, 123, ,2014-10-06, 156, ,2014-10-07, 123, ,2014-10-08, 76, ,2014-10-09, 45, ,2014-10-10, 123, ,2014-10-11, 190, ,2014-10-12, 143,
如果你解决了,提前谢谢。
使用trim
函数来消除字符串开头和结尾的空白。还要检查空字符串。
例如:
var str=" text "
var trimmedText=str.trim()//returns "text"
相关文章:
- 如何在不需要单击按钮的情况下获取选项的值
- Javascript不需要的关闭行为
- jQuery添加的文本不显示
- 删除客户端浏览器上不需要的内容
- 不允许在字段中输入不需要的字符
- 不需要的JSON响应
- 如何使图像适合TD,而不需要包装在不同的屏幕分辨率上
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- jQuery regex从文本链接-添加不需要的域到链接
- 使用AJAX html()加载Django模板导致不需要的文本
- 将不需要的页脚文本替换为空白区域
- 不需要的文件在IE中提交后清除文本框
- 如何用javascript编程编辑HTML格式的文本,而不需要手动处理标记和HTML
- 如何删除合理段落中文本之间不需要的空白
- 空格键在运行javascript函数时导致不需要的文本
- 删除不需要的标记(如果在文本之前)
- 在文本输入中不需要的字符出现之前将其删除
- Imacros提取和删除不需要的文本
- CRM 2011:使用电子邮件正文填充后,案例的“说明”字段中出现不需要的文本
- 使用jquery从链接中删除不需要的文本