나는 다음과 같은 XML의 '기준'노드에서 '필드'요소에 액세스하려고 :XML 노드에 @attributes에 액세스 할 수 없음
<?xml version="1.0" encoding="utf-8"?>
<result>
<product>
<data>
<field>spr_tech1</field>
<value>S7</value>
<criteria field="xfield_3">
<criteria_list>Green</criteria_list>
<criteria_list>Beige</criteria_list>
</criteria>
</data>
<data>
<field>spr_tech1</field>
<value>S1</value>
<criteria field="xfield_3">
<criteria_list>Red</criteria_list>
<criteria_list>Blue</criteria_list>
<criteria_list>Yellow</criteria_list>
</criteria>
</data>
<data>
<field>spr_tech1</field>
<value>S7</value>
<criteria field="xfield_3">
<criteria_list>Green</criteria_list>
</criteria>
<criteria field="tech_rt2">
<criteria_list>Transistor</criteria_list>
</criteria>
</data>
</product>
</result>
다음과 같은 오류가 발생합니다 아래 코드 : 치명적인 오류 : 당신이 코드에서 볼 수 있듯이 나는 몇 가지 방법을 시도했습니다 개체가 아닌
function parseXmlFile($filename)
{
$xml = file_get_contents($filename);
$obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$array = json_decode(json_encode($obj), true); // Convert to array}
return $array;
}
$xform = parseXmlFile('transformations.xml');
foreach ($xform['product']['data'] as $data)
{
echo (string)$data['field'] . '<br>';
echo (string)$data['value'] . '<br>';
foreach($data['criteria']->attributes() as $att => $val)
{ echo $att . ' = ' . $val . '<br>'; }
echo $data['criteria']->attributes()->{'field'} . '<br>';
foreach($data['criteria']['criteria_list'] as $att => $val)
{ echo $att . ' = ' . $val . '<br>'; }
echo "-----------------------------------<br>";
}
print "<pre>";
print_r($xform);
print "</pre>";
에() 멤버 함수 속성에 전화,하지만 어느 날 위해 노력하고 있습니다.
도움을 주시면 감사하겠습니다.
죄송합니다, 나는 완전히 내 XML 도우미 기능에 대해 잊어 버렸습니다. 코드에 추가했습니다. – Dizzy49
두 줄의 코드를 사용하고 [field]에서 -> fields로 변경하면 모두 작동합니다. 따라서 문제는 json de/encode를 사용하여 배열로 변환 된 후입니다. – Dizzy49