php xml 데이터 처리 문제입니다.
조회수 2124회
안녕하세요.
다름이 아니라 a.xml이란 파일에 있는 값중 중복되는 데이터가 있을경우 그 중복된 데이터 중에 하나를 삭제하고 다른 하나는 가지고 가고싶은데 php로 어떤식으로 해야 될까요...
a.xml
<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<ROW>
<LOC>KOR</LOC>
<YMD>20160215</YMD>
<HMD>082726</HMD>
<FLOORID>1</FLOORID>
<AREAID>1</AREAID>
<SCALECD>000001</SCALECD>
<WEIGHT>500</WEIGHT>
<MACADDR>D7:54:27:34:70:28</MACADDR>
<OFFSET>2</OFFSET>
</ROW>
<ROW>
<LOC>KOR</LOC>
<YMD>20160215</YMD>
<HMD>082726</HMD>
<FLOORID>1</FLOORID>
<AREAID>1</AREAID>
<SCALECD>000001</SCALECD>
<WEIGHT>500</WEIGHT>
<MACADDR>D7:54:27:34:70:28</MACADDR>
<OFFSET>2</OFFSET>
</ROW>
<ROW>
<LOC>KOR</LOC>
<YMD>20160215</YMD>
<HMD>082726</HMD>
<FLOORID>1</FLOORID>
<AREAID>1</AREAID>
<SCALECD>000003</SCALECD>
<WEIGHT>600</WEIGHT>
<MACADDR>D7:54:27:34:70:28</MACADDR>
<OFFSET>3</OFFSET>
</ROW>
<ROW>
<LOC>KOR</LOC>
<YMD>20160215</YMD>
<HMD>082726</HMD>
<FLOORID>1</FLOORID>
<AREAID>1</AREAID>
<SCALECD>000003</SCALECD>
<WEIGHT>600</WEIGHT>
<MACADDR>D7:54:27:34:70:28</MACADDR>
<OFFSET>3</OFFSET>
</ROW>
</DATA>
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
http://www.w3schools.com/xml/cd_catalog.xml 에 있는 예제를 가지고 만들어 봤는데요. 이렇게 하고 나면 data에 값이 다른것들만 들어가도록 되어 있습니다. 같은거는 하나로 합쳐지구요. 아래 예제에서 CD만 ROW로 바꿔주면 될 것 같은데요.
같다는것의 기준은 ROW에 들어있는것들의 모든 값이 같으면 같다고 봤어요.
$xmlDoc = new DOMDocument(); $xmlDoc->load("http://www.w3schools.com/xml/cd_catalog.xml"); $elements = $xmlDoc->getElementsByTagName('CD'); $data = array(); foreach($elements as $node){ $row = array(); $hash = ""; foreach($node->childNodes as $child) { array_push($row,$child->nodeValue); $hash = $hash.$child->nodeValue; } print_r($row); echo("<BR>"); print_r($hash); echo("<BR>"); $data[$hash]=$row; }
출력은 다음과 같이 나옵니다.
Array ( [0] => [1] => Empire Burlesque [2] => [3] => Bob Dylan [4] => [5] => USA [6] => [7] => Columbia [8] => [9] => 10.90 [10] => [11] => 1985 [12] => ) Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Array ( [0] => [1] => Hide your heart [2] => [3] => Bonnie Tyler [4] => [5] => UK [6] => [7] => CBS Records [8] => [9] => 9.90 [10] => [11] => 1988 [12] => ) Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 Array ( [0] => [1] => Greatest Hits [2] => [3] => Dolly Parton [4] => [5] => USA [6] => [7] => RCA [8] => [9] => 9.90 [10] => [11] => 1982 [12] => ) Greatest Hits Dolly Parton USA RCA 9.90 1982 ...중략
댓글 입력