解析XML与包含一个以上的信息
我喜欢它指的是同一个产品的所有ID,但在TAG的值不同,这解析XML与包含一个以上的信息
<catalogo>
<items>
<item>
<ID>1</ID>
<NAME>VA</NAME>
<SIZE>S</SIZE>
<GROUP>1,2,3,4</GROUP>
</item>
<item>
<ID>2</ID>
<NAME>VA</NAME>
<SIZE>M</SIZE>
<GROUP>l,2,3,4</GROUP>
</item>
<item>
<ID>3</ID>
<NAME>VA</NAME>
<SIZE>L</SIZE>
<GROUP>1,2,3,4</GROUP>
</item>
<item>
<ID>2</ID>
<NAME>VA</NAME>
<SIZE>XL</SIZE>
<GROUP>l,2,3,4</GROUP>
</item>
</items>
</catalogo>
标签组的XML标签尺寸。
我想获得这样的
id name size1 size2 size3 size4
1 va s m l xl
SQL表我如何解析这个XML与PHP来获得我想要的表?
假设你得到的XML和不能改变它:
(1)读取XML,构建阵列$c
,假设<NAME>
也是连结<SIZE>s
。
的代码将生成与关键= <NAME>
和值的关联数组= <SIZE>s
通过分隔|:一个表(数据库表?HTML表["VA"] => string(9) "|S|M|L|XL"
$xml = simplexml_load_string($x);
$c = array();
foreach ($xml->items->item as $item) {
$n = (string)$item->NAME;
if (!isset($c[$n])) $c[$n]='';
$c[$n] .= "|". (string)$item->SIZE;
}
(2)写作$c
你决定。 ..):
foreach ($c as $name => $sizes) {
$size = explode('|', trim($sizes,'|'));
$max = count($size);
// enter code for whatsoever table...
// echo for demonstration:
echo "--$name:-----<br />";
for ($i = 0; $i < $max; $i++) echo "size$i: {$size[$i]}<br />";
}
看到真人演示:http://codepad.viper-7.com/VL1hgw
罪情况下,你MAKE XML自己,使其不同,就像...
<item id="1">
<name>VA</name>
<size>S</size>
<size>M</size>
<size>L</size>
<size>XL</size>
</item>
嗨michi非常感谢...你真是太棒了!我不明白在哪里把我的代码SQL在你的公式....假设我的表名是“朋友”,我想只插入大小和ID的值。谢谢 – user2120473 2013-04-09 18:06:14
我试着用代码在你写的“//输入任何表的代码...” $ sql =“INSERT INTO table2 VALUES('$ name','$ size [0]','$ size [ 1]”, '$尺寸[2]', '$大小[3]')“; $ rssql = mysql_query($ sql); 但它不起作用......我错了吗? – user2120473 2013-04-09 19:56:18
@ user2120473:不建议使用mysql_-functions,请使用mysqli_或PDO,请参阅php.net了解基础知识。试试吧,那么,如果你需要帮助,就打开一个新的问题!祝好运并玩得开心点! – michi 2013-04-09 21:23:14
与任何与读取XML:http://php.net/dom – 2013-04-09 16:26:19
嗨马克感谢......但我现在该怎么解析它只是为了从XML检索数据...但我不知道如何把大小的值放在表中 – user2120473 2013-04-09 16:42:03