我正在处理一个类似于 xml 的gpx文件。这是该文件的摘录:
<trkpt lat="3.1398377" lon="101.6937661">
<ele>0.0</ele>
<time>2013-01-01T00:00:00.000Z</time>
<name>Position 1</name>
</trkpt>
<trkpt lat="3.1250538" lon="101.6783237">
<ele>0.0</ele>
<name>Position 460</name>
</trkpt>
如您所见,有些<trkpt>元素包含该<time>元素,有些则不包含。如何添加<time>到那些<trkpt>不包含它的元素?
在读取文件时,如果 XML 节点不包含以下内容,则会产生错误<time>:
foreach $points ( $root->getElementsByTagName('trkpt') ) {
my($lat) = $points->findvalue('@lat');
my($lon) = $pints->findvalue('@lon');
my($time) = $points->getElementsByTagName('time')->[0]->textContent();
my($pointName) = $points->getElementsByTagName('name')->[0]->textContent();
}
无法在...处对未定义的值调用方法“textContent”
我怎样才能让它更智能?即如果遇到 undefined $time,就会将 写入<time>gpx 文件,不会出现错误。