PHP DOM XPath을 사용하여 을 읽습니다. XML 내가 붙어있어 다음과 같은 구조를 가지고있다PHP XPath에서 동일한 노드 이름을 구별합니다
<details>
<name>name1</name>
<address>address1</address>
</details>
<details>
<name>name2</name>
<mobile>mobileNum</mobile>
<address>address2</address>
</details>
내가 가진 내가이 배열을 사용하고 다른 배열에 값 XML 및 저장소에서하지만 첫 번째 레코드 모바일에서 값을 읽을
array(
'name',
'mobile',
'address'
);
처럼 배열 번호이 없으므로 두 번째 레코드에서 모바일 번호를 읽고 첫 번째 레코드에 삽입합니다.
예상 출력은
array
(
[0] => array(
'person_name' = name1,
'address' = address1
)
[1] => array(
'person_name' = name1,
'mobile_no' = mobileNum
'address' = address1
)
)
이다하지만 내가 같은 이름을 가진 두 노드 사이의 값을 차별화 할 수있는 방법
array
(
[0] => array(
'person_name' = name1,
'mobile_no' = mobileNum
'address' = address1
)
[1] => array(
'person_name' = name1,
'address' = address1
)
)
으로 출력을 얻을. XML을 읽을 수
코드는 여기에
$nodes = array
(
'person_name' => 'name',
'mobile_no' => 'mobile',
'address' => 'address'
)
$final_data = array();
$node_values = '';
foreach($nodes as $key => $data)
{
$node_values = $xml->xpath('//details'.$data);
$node_values = json_decode(json_encode((array)$node_values), TRUE);
if(!empty($node_values))
{
$i = 0;
foreach($node_values as $d)
{
$final_data[$i][$key] = trim($d[0]);
$i++;
}
}
}
__code__를 알려주십시오. –
이러한 접근법은 잘못된 것입니다.'details'를 반복하십시오. –
그러면 다른 방법으로 데이터를 얻을 수 있습니다. – hrishi