1

我有 XML 文件

<shop>
<categories>
<category id="-2147483638" parent="0" name="Dia"/>
<category id="-2147483637" parent="0" name="Stri"/>
<categories>
<parameters>
<parameter id="6" name="Druh" typ="ENUM" systemid="">
<enumValue valueId="5" value="Be"/>
<enumValue valueId="6" value="Zi"/>
<enumValue valueId="7" value="Po"/>
<enumValue valueId="8" value="Di"/>
<enumValue valueId="9" value="Pr"/>
<enumValue valueId="10" value="Ma"/>
<enumValue valueId="11" value="Ma"/>
<enumValue valueId="12" value="Gr"/>
<enumValue valueId="13" value="Ak"/>
<enumValue valueId="14" value="Ru"/>
<enumValue valueId="15" value="Za"/>
<enumValue valueId="16" value="Kr"/>
<enumValue valueId="17" value="Pe"/>
</parameter>
<parameter id="9" name="Šperk" typ="ENUM" systemid="s9">
<enumValue valueId="4" value="Male"/>  
<enumValue valueId="5" value="Female"/>
<enumValue valueId="6" value="Unisex"/>
</parameter>
</parameters>
</shop>

和用于读取 xml 的 PHP 代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
SET NAMES 'utf8'; 
TRUNCATE TABLE ocppoption;
truncate table ocppoption_description ;

<?

$request_url = "http://...xml"; // 
$xml = simplexml_load_file($request_url) or die("error");    
$language=2;


foreach($xml->parameters->parameter as $key) {
  echo "\n\r<br/><br/>insert into option  values (
".$key['id']."
, 'select'    
,1
);";

  echo "\n\r<br/>insert into option_description  values (
".$key['id']."
, 1
,'".$key['name']."'
);";


if (!isset($j))   {$j=1;}

   $i=0; 
    $k=1;
    $i=$j; 

foreach($key->attributes()  as $enum => $val) {

    echo "\n\n\r<br/><br/>insert into option_value  values (
    ".$i++."
,".$key['id']."
    ,''
    , ".$k++."
    );";    
  $j=$i;
}}

我有输出:

    insert into option values ( 6 , 'select' ,1 );
    insert into option_description values ( 6 , 1 ,'Druh' );

    insert into option_value values ( 1 ,6 ,'' , 1 );

    insert into option_value values ( 2 ,6 ,'' , 2 );

    insert into option_value values ( 3 ,6 ,'' , 3 ); 

但是如果我想从标签加载值

<enumValue valueId="4" value="Male"/>. 

所以我想要像 insert into option_value 值( 4, 6 ,'' , 3 )这样的输出;

它没有正常工作。你能帮我么?我需要输出 4,男……我怎样才能从 xml 中获取这些值?

4

1 回答 1

1
echo $xml->enumValue["valueId"];
echo $xml->enumValue["value"];

编辑:

我会以不同的方式处理你的 foreach 循环

foreach($xml->parameter->enumValue as $key=>$param):
   echo $param['valueId'];
   echo $param['value'];
endforeach;
于 2012-12-13T12:11:13.983 回答