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