PostingXMLExample.java 를 PostingXMLExample.php 으로 :: 2009/09/16 18:14
<?php
// xml 데이터를 받는다
$receive_xml = $HTTP_RAW_POST_DATA;
// echo $_GET["timeStamp"] . $receive_xml;
$rXml = xml_parser_create(); // xml 파서를 생성시킨다.
$arXml = array(); // 임시 배열
$strXml = ''; // xml의 내용을 저장할 변수
xml_parser_set_option($rXml, XML_OPTION_CASE_FOLDING, 0); // 대문자로 변경 (기본이 enable이라 disable함)
xml_parser_set_option($rXml, XML_OPTION_SKIP_WHITE, 1); // 공백값을 무시힌다.
xml_parse_into_struct($rXml, $receive_xml, $arXml); // 읽어들인 XML을 이용해서 배열에 XML구조를 담는다.
xml_parser_free($rXml);
$strNodeKey = ''; // XML tag 이름이 들어가자
$$arXmlAssoc = array(); // 연관배열 형식으로 하기 위해서 선언
foreach($arXml as $key => $arNode)
{
switch ($arNode['type'])
{
case 'open':
$strNodeKey = $arNode['tag'];
$arXmlAssoc[$strNodeKey];
break;
case 'complete':
if(is_array($arNode['attributes']))
{
$arXmlAssoc[$strNodeKey][$arNode['tag']][] = array('attr' => $arNode['attributes'], 'value' => $arNode['value']);
}
else
{
$arXmlAssoc[$strNodeKey][$arNode['tag']][] = $arNode['value'];
}
break;
case 'close':
// Nothing
break;
}
}
foreach($arXmlAssoc['pets']['type'] as $arElement)
{
$strXml .= " " . $arElement;
}
echo $strXml;
// print_r($arXml);
?>




