2016-11-01 3 views
-1

내 프로젝트의 XML 파일 작업에 SimpleXMLElement 클래스를 사용합니다.PHP 용 SimpleXML을 사용하여 속성 값 가져 오기

제 질문은 : 일부 속성과 함께 일부 태그의 속성 값을 얻는 방법은 무엇입니까? 태그의 이름, 속성의 이름 및 xml 파일의 위치를 ​​알고 있다고 가정 할 수 있습니다. 예를 들어, 그러한 문자열의 경우 <someTag cp="c2"> 'someTag'및 'cp'값을 알고 "c2"문자열을 가져 오려고합니다.

감사합니다.

+0

설명서에는 기본 속성에 대한 액세스가 포함 된 몇 가지 훌륭한 [소개 사례] (http://php.net/manual/en/simplexml.examples-basic.php)가 있습니다. – IMSoP

답변

1

당신은 속성의 얻을 수있는 노드에 attributes() 기능을 사용할 수 있습니다 : I합니다 ((string) 캐스트를 사용하여) 문자열로 변환을 사용하려면, 그래서

$xml_str = '<xml> 
    <node> 
     <someTag cp="c2">content</someTag> 
    </node> 
</xml>'; 
$res = simplexml_load_string($xml_str); 

$items = $res->xpath("//someTag"); 
var_dump((string) $items[0]->attributes()->cp); 

반환 요소는 SimpleXMLElement입니다.

+0

예, 작동합니다! 감사합니다) – Miroslav

+0

이것은 대부분의 유스 케이스에서 불필요하게 복잡합니다. 간단한 버전은'var_dump ((string) $ res-> someTag [ 'cp'])' – IMSoP

+0

죄송합니다. 그것은'$ res-> node-> someTag [ 'cp']'일 것이다. 당신은 그 생각을 얻었습니다. – IMSoP