하이픈 이름이 있는 SimpleXML 읽기 노드
XML에서는 가독성을 높이기 위해 노드 이름에 하이픈을 사용할 수 있습니다. 그러나 이러한 하이픈으로 연결된 이름은 SimpleXML을 사용하여 XML 문서를 구문 분석할 때 문제를 일으킬 수 있습니다.
문제
SimpleXML을 사용하여 하이픈으로 연결된 이름이 있는 노드에 액세스하려고 하면, 사용자에게 오류나 잘못된 결과가 발생할 수 있습니다. 예를 들어 다음 XML을 사용하는 경우:
<gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" ...> <office:document-meta ...> ... </office:document-meta> </gnm:Workbook>
표준 구문을 사용하여 "document-meta" 노드에 액세스하려고 하면
$docMeta = $officeXML->document-meta;
오류가 발생하거나 잘못된 정수 값이 발생합니다. .
해결책
올바르게 하려면 SimpleXML에서 하이픈으로 연결된 이름을 가진 노드에 액세스하려면 노드 이름을 중괄호로 묶으세요.
$docMeta = $officeXML->{'document-meta'};
이 구문은 SimpleXML이 하이픈으로 연결된 이름을 문자열로 처리하고 특정 이름으로 노드를 찾도록 지시합니다.
속성 액세스
이 중괄호 구문은 요소 노드에 액세스하는 데 필요합니다. 하이픈으로 연결된 이름이 있는 속성은 표준 배열 표기법을 사용하여 액세스할 수 있습니다.
$attribute = $node['hyphenated-attribute'];
대체 방법
중괄호 구문을 선호하지 않는 경우 대체 방법은 다음을 사용하는 것입니다. 다음 표기법은 다음과 같습니다.
$docMeta = $officeXML->{'office:document-meta'};
이 명시적인 네임스페이스 선언은 SimpleXML이 지정된 네임스페이스.
결론
중괄호나 명시적인 네임스페이스 선언을 사용하면 SimpleXML을 사용하여 XML 문서에서 하이픈으로 연결된 이름이 있는 노드를 성공적으로 읽을 수 있습니다.
위 내용은 SimpleXML에서 하이픈으로 연결된 노드 이름에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!