解析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来获得我想要的表?

+0

与任何与读取XML:http://php.net/dom – 2013-04-09 16:26:19

+0

嗨马克感谢......但我现在该怎么解析它只是为了从XML检索数据...但我不知道如何把大小的值放在表中 – user2120473 2013-04-09 16:42:03

假设你得到的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> 
+0

嗨michi非常感谢...你真是太棒了!我不明白在哪里把我的代码SQL在你的公式....假设我的表名是“朋友”,我想只插入大小和ID的值。谢谢 – user2120473 2013-04-09 18:06:14

+0

我试着用代码在你写的“//输入任何表的代码...” $ sql =“INSERT INTO table2 VALUES('$ name','$ size [0]','$ size [ 1]”, '$尺寸[2]', '$大小[3]')“; $ rssql = mysql_query($ sql); 但它不起作用......我错了吗? – user2120473 2013-04-09 19:56:18

+0

@ user2120473:不建议使用mysql_-functions,请使用mysqli_或PDO,请参阅php.net了解基础知识。试试吧,那么,如果你需要帮助,就打开一个新的问题!祝好运并玩得开心点! – michi 2013-04-09 21:23:14