SimpleXML : 특정 속성 값을 갖는 요소 선택하기
PHPSimpleXML : 특정 속성 값을 갖는 요소 선택하기
XML 문서에서 동일한 이름을 가진 요소가 있지만 속성의 값은 어떤 데이터 유형인지 정의하고 문서에서 특정 값을 갖는 모든 요소를 선택하려고합니다. XPath를 사용해야합니까 (그렇다면 올바른 구문을 제안 할 수 있습니까?) 아니면보다 세련된 솔루션이 있습니까?
다음은 XML 예제입니다.
<object>
<data type="me">myname</data>
<data type="you">yourname</data>
<data type="me">myothername</data>
</object>
그리고 모든 태그의 내용을 선택하고 싶습니다.
추신 : 나는 PHP를 사용하여 Netflix API와 인터페이스를 시도하고 있습니다. - 이것은 내 질문에 대해 중요하지 않아야합니다. 그러나 그렇게하기위한 좋은 / 좋은 방법을 제안하고 싶다면, 나는 모든 귀입니다.
해결법
-
==============================
1.이 XPath를 사용해보십시오.
이 XPath를 사용해보십시오.
/object/data[@type="me"]
그래서:
$myDataObjects = $simplexml->xpath('/object/data[@type="me"]');
object가 문서의 루트가 아닌 경우 // object / data [@ type = "me"]를 대신 사용하십시오.
-
==============================
2.나는 방금이 일을 할 수있는 기능을 만들었습니다. 그것은 단지 첫 번째 결과를 잡는다. 귀하의 마일리지가 다를 수 있습니다.
나는 방금이 일을 할 수있는 기능을 만들었습니다. 그것은 단지 첫 번째 결과를 잡는다. 귀하의 마일리지가 다를 수 있습니다.
function query_attribute($xmlNode, $attr_name, $attr_value) { foreach($xmlNode as $node) { switch($node[$attr_name]) { case $attr_value: return $node; } } }
용법:
echo query_attribute($MySimpleXmlNode->Customer, "type", "human")->Name;
(아래 XML을 위해)
<Root><Customer type="human"><Name>Sam Jones</name></Customer></Root>
from https://stackoverflow.com/questions/992450/simplexml-selecting-elements-which-have-a-certain-attribute-value by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP 용 obfuscator 코드가 있습니까? [닫은] (0) | 2018.09.06 |
---|---|
인코딩을 감지하고 모든 것을 UTF-8로 만듭니다. (0) | 2018.09.06 |
PHP는 이미지를 MySQL에서 MySQL의 BLOB를 표시 [중복] (0) | 2018.09.06 |
다차원 배열의 모든 열 값을 합하는 방법은 무엇입니까? (0) | 2018.09.06 |
PHP에서 POST의 시체를 얻는 방법? (0) | 2018.09.06 |