我正在处理一个类似于 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 文件,不会出现错误。