2011-11-15 2 views
0

SimpleXML을 사용하여 RSS 피드를 구문 분석하고 SimpleXML에 의해 반환 된 배열의 속성이 내 문자열 표시 데이터와 일치하는지 확인합니다. 일부 항목은 XML 파일에 복제되므로 처음 항목 만 사용하려고합니다. 하지만 나는 모든 중복 결과를 얻고 있습니다.배열에서 항목의 첫 번째 발생로드

foreach($feed->city as $city){ 
    if(in_array($city['Name'], $cities)){ 
     echo $city['Name'].'<br />'; 
    } 
} 

여기서 $ feed-> city는 XML 데이터이고 $ cities는 내 배열입니다.

답변

1

나는 이것을하기 위해 PHP의 Xpath 라이브러리를 사용할 것이다. Xpath 2.0에서는이 작업을 직접 수행 할 수 있지만 내장 된 Xpath 1.0 언어는 여전히 매우 가까이에 있습니다.

<!-- language: lang-php --> 
$xmlDocument = new DOMDocument(); 
    if ($xmlDocument->load('file.xml')) { 
    $xpath = new DOMXPath($xmlDocument); 
    $nodeList = $xpath->query('//city/@Name', $xmlDocument); 

여기에서 DOMNodeList 클래스가 있습니다. 그것을 배열에 버리고 중복을 제거하십시오. 나는 그것을 끝내기 위해 지금 당장 PHP 환경을 보지 못했지만, 단순한 XML 자체와는 다른 방향을 제시하고자했다.

+0

감사합니다.하지만 원하는 것은 아닙니다. 다음과 같은 xml 파일이 있습니다 \t \t \t \t 이 태그는 SimpleXML을 사용하여 배열에 추출했습니다. city2는 중복되지만 2 가지 카테고리로 나뉩니다. 배열에서 그 중 하나를 제거하고 싶습니다. –

+0

제거하여 city2 태그 전체를 제거하는 것을 의미합니다. array_unique가 작동하지 않았습니다. –

관련 문제