php:解析xml文件多行字符串
我需要为每条道路形成一个表格,其中包含一个shape_leng和一个坐标(多行线)列。每条道路可以有任意数量的线,我需要将它们保存在一行中 Xml文件的格式如下:少数道路是多行字符串,少数道路只有一行: 我试着解析它 (请注意,对于道路,shape_leng是单个的,但对于道路,坐标线可以是单个的,也可以是多个。)php:解析xml文件多行字符串,php,xml,Php,Xml,我需要为每条道路形成一个表格,其中包含一个shape_leng和一个坐标(多行线)列。每条道路可以有任意数量的线,我需要将它们保存在一行中 Xml文件的格式如下:少数道路是多行字符串,少数道路只有一行: 我试着解析它 (请注意,对于道路,shape_leng是单个的,但对于道路,坐标线可以是单个的,也可以是多个。) 因此,我无法按特定顺序添加它们,如shape_leng和coordinates。如果要将所有坐标插入到单个数据库行中,我认为必须以不同的方式构造XPath和循环。在道路上循环,然后使
因此,我无法按特定顺序添加它们,如shape_leng和coordinates。如果要将所有坐标插入到单个数据库行中,我认为必须以不同的方式构造XPath和循环。在道路上循环,然后使用XPath获取属于该道路的所有坐标。例如:
// get all the roads and loop through them
$roads = $xml->xpath("//e:featureMember/b:AA_ROAD");
$i=0;
while(isset($roads[$i]))
{
// get the coordinates for the current road
$coordinates = $roads[i]->xpath("/b:the_geom/e:MultiLineString/e:lineStringMember/e:LineString/e:coordinates");
$shapel = $roads[i]->xpath("/b:SHAPE_Leng");
// add a second loop to concatinate all the $coordinates
$j=0;
while (isset($coordinates[$j])) {
// TODO concatinate coordinates
}
// insert the row
$b=mysql_query("INSERT IGNORE INTO `new`.`road1` (`coordstr`, `shapeleng`) values (GEOMFROMTEXT(concat('MULTILINESTRING ($a )')), '$shapel[$i]') ");
$i++;
echo "<br />";
echo $i;
}
//找到所有的路并绕行
$roads=$xml->xpath(“/e:featureMember/b:AA_ROAD”);
$i=0;
而(isset($roads[$i]))
{
//获取当前道路的坐标
$coordinates=$roads[i]>xpath(“/b:the_geom/e:MultiLineString/e:lineStringMember/e:LineString/e:coordinates”);
$shapel=$roads[i]>xpath(“/b:SHAPE_Leng”);
//添加第二个循环以包含所有$坐标
$j=0;
while(isset($coordinates[$j])){
//TODO连续坐标
}
//插入行
$b=mysql_查询(“将忽略插入到`new`.`road1`(`coordstr`,`shapeleng`)值(GEOMFROMTEXT(concat('MULTILINESTRING($a)')),`shapel[$i]');
$i++;
回声“
”;
echo$i;
}
我需要为每条道路建立一个表格,表格中有一个形状栏和一个坐标(多行线)栏,每条道路可以有任意数量的线条,我需要将它们保存在一行中。查询数据库以从中进行选择时,您可以添加顺序,而不是插入数据时。这有帮助吗?我在$shapel=$roads[$i]>xpath(“/b:SHAPE_Leng”)中遇到一个错误;警告:SimpleXMLElement::xpath()[]:第14行的C:\wamp\www\kgp\newroadp.php中未定义的命名空间前缀$shapel=$roads[$i]>xpath(“/b:SHAPE_Leng”);