- PHP로 XML 생성, PHP에서 XML 생성
- PHP XML 출력
1 방법 1: echo[ | ]
수동으로 XML 문자열 구성
PHP
Copy
<?php
$xml = "<?xml version='1.0' encoding='UTF-8'?>";
$xml .= "<quiz>";
$xml .= "<question>대한민국의 초대 대통령은?</question>";
$xml .= "<answer>이승만</answer>";
$xml .= "<url>http://jmnote.com/wiki/PHP로_XML_생성</url>";
$xml .= "</quiz>";
header('Content-type: text/xml');
echo $xml;
2 방법 2: array_xml[ | ]
배열을 XML형식으로 바꾸어주는 array_xml 함수 이용[1]
PHP
Copy
<?php
function array_xml($arr, $num_prefix = "num_") {
if(!is_array($arr)) return $arr;
$result = '';
foreach($arr as $key => $val) {
$key = (is_numeric($key)? $num_prefix.$key : $key);
$result .= '<'.$key.'>'.array_xml($val, $num_prefix).'</'.$key.'>';
}
return $result;
}
$xml = array( 'quiz'=> array(
'question' => '대한민국의 초대 대통령은?',
'answer' => '이승만',
'url' => 'http://jmnote.com/wiki/PHP로_XML_생성'
));
header('Content-type: text/xml');
echo "<?xml version='1.0' encoding='UTF-8'?>\n";
echo array_xml($xml);
3 방법 3: XmlConstruct[ | ]
XMLWriter를 상속하여 편의성을 높인 XmlConstruct 클래스를 이용[2]
PHP
Copy
<?php
class XmlConstruct extends XMLWriter {
public function __construct($prm_rootElementName, $prm_xsltFilePath='') {
$this->openMemory();
$this->setIndent(true);
$this->setIndentString(' ');
$this->startDocument('1.0', 'UTF-8');
if($prm_xsltFilePath) $this->writePi('xml-stylesheet', 'type="text/xsl" href="'.$prm_xsltFilePath.'"');
$this->startElement($prm_rootElementName);
}
public function setElement($prm_elementName, $prm_ElementText) {
$this->startElement($prm_elementName);
$this->text($prm_ElementText);
$this->endElement();
}
public function fromArray($prm_array) {
if(!is_array($prm_array)) return;
foreach ($prm_array as $index => $element) {
if(is_array($element)) {
$this->startElement($index);
$this->fromArray($element);
$this->endElement();
}
else $this->setElement($index, $element);
}
}
public function getDocument() {
$this->endElement();
$this->endDocument();
return $this->outputMemory();
}
public function output() {
header('Content-type: text/xml');
echo $this->getDocument();
}
}
$contents = array(
'question' => '대한민국의 초대 대통령은?',
'answer' => '이승만',
'url' => 'http://jmnote.com/wiki/PHP로_XML_생성'
);
$XmlConstruct = new XmlConstruct('quiz');
$XmlConstruct->fromArray($contents);
$XmlConstruct->output();
4 방법 4: DomDocument[ | ]
PHP
CPU
0.0s
MEM
21M
0.0s
Copy
$doc = new DomDocument('1.0', 'UTF-8');
$quiz = $doc->createElement('quiz');
$doc->appendChild($quiz);
$question = $doc->createElement('question', '대한민국의 초대 대통령은?');
$answer = $doc->createElement('answer', '이승만');
$url = $doc->createElement('url', 'http://jmnote.com/wiki/PHP로_XML_생성');
$quiz->appendChild($question);
$quiz->appendChild($answer);
$quiz->appendChild($url);
$xml = $doc->saveXML();
echo $xml;
<?xml version="1.0" encoding="UTF-8"?> <quiz><question>대한민국의 초대 대통령은?</question><answer>이승만</answer><url>http://jmnote.com/wiki/PHP로_XML_생성</url></quiz>
5 같이 보기[ | ]
6 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.