> 백엔드 개발 > PHP 튜토리얼 > PHP에서 XML 출력을 예쁘게 인쇄하는 방법은 무엇입니까?

PHP에서 XML 출력을 예쁘게 인쇄하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-28 22:00:17
원래의
411명이 탐색했습니다.

How to Pretty Print XML Output in PHP?

PHP에서 XML을 예쁘게 인쇄하는 방법

PHP에서 XML로 작업할 때 형식 지정 문제가 발생할 수 있습니다. 브라우저에서 XML을 표시할 때 원하는 들여쓰기 및 공백 문자를 얻지 못하는 경우 이 기사에서는 올바른 형식의 XML 데이터를 출력하는 데 도움이 되는 솔루션을 제공합니다.

문제 설명

다음 PHP 코드는 XML 문서를 생성하지만 잘못된 형식의 출력을 생성합니다.

$doc = new DomDocument('1.0');
// create root node
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
$signed_values = array('a' => 'eee', 'b' => 'sd', 'c' => 'df');
// process one row at a time
foreach ($signed_values as $key => $val) {
    // add node for each row
    $occ = $doc->createElement('error');
    $occ = $root->appendChild($occ);
    // add a child node for each field
    foreach ($signed_values as $fieldname => $fieldvalue) {
        $child = $doc->createElement($fieldname);
        $child = $occ->appendChild($child);
        $value = $doc->createTextNode($fieldvalue);
        $value = $child->appendChild($value);
    }
}
// get completed xml document
$xml_string = $doc->saveXML();
echo $xml_string;
로그인 후 복사

해결책

To 올바른 형식의 XML 출력을 얻으려면 DomDocument 개체에 대해 다음 매개 변수를 설정할 수 있습니다.

$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
로그인 후 복사

preserveWhiteSpace를 false로 설정하면 공백 문자가 출력에서 ​​제거됩니다. formatOutput을 true로 설정하면 XML 요소 들여쓰기가 활성화됩니다.

또는 DomDocument를 생성한 직후에 이러한 매개변수를 설정할 수 있습니다.

$doc = new DomDocument('1.0');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
로그인 후 복사

두 경우 모두 출력이 올바른 형식의 XML을 제공합니다.

<?xml version="1.0"?>
<root>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
</root>
로그인 후 복사

추가 참고사항

추가 문의 사항이 있는 경우 들여쓰기를 사용자 정의하려면 정규식 기반 접근 방식을 사용할 수 있습니다.

$xml_string = preg_replace('/(?:^|\G)  /um', "\t", $xml_string);
로그인 후 복사

이렇게 하면 이중 공백이 탭으로 대체됩니다.

위 내용은 PHP에서 XML 출력을 예쁘게 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿