>백엔드 개발 >PHP 튜토리얼 >SimpleXML에서 하이픈으로 연결된 노드 이름에 액세스하는 방법은 무엇입니까?

SimpleXML에서 하이픈으로 연결된 노드 이름에 액세스하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-13 13:37:10441검색

How to Access Hyphenated Node Names in SimpleXML?

하이픈 이름이 있는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.