PHP에서 문자열을 만드는 함수가 SimpleXMLElement
있습니까?
답변:
이 SimpleXMLElement::asXML()
방법을 사용하여 수행 할 수 있습니다 .
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
// The entire XML tree as a string:
// "<element><child>Hello World</child></element>"
$xml->asXML();
// Just the child node as a string:
// "<child>Hello World</child>"
$xml->child->asXML();
$string = $xml->child->__toString();
실제로 asXML ()은 이름이 말하는대로 문자열을 xml로 변환합니다.
<id>5</id>
이것은 웹 페이지에 정상적으로 표시되지만 값을 다른 것과 일치시킬 때 문제가 발생합니다.
strip_tags 함수를 사용하여 다음과 같이 필드의 실제 값을 얻을 수 있습니다.
$newString = strip_tags($xml->asXML());
추신 : 정수 또는 부동 숫자로 작업하는 경우 intval () 또는 floatval ()을 사용 하여 정수로 변환해야합니다 .
$newNumber = intval(strip_tags($xml->asXML()));
다음은이 문제를 해결하기 위해 작성한 함수입니다 (태그에 속성이 없다고 가정). 이 함수는 노드에서 HTML 형식을 유지합니다.
function getAsXMLContent($xmlElement)
{
$content=$xmlElement->asXML();
$end=strpos($content,'>');
if ($end!==false)
{
$tag=substr($content, 1, $end-1);
return str_replace(array('<'.$tag.'>', '</'.$tag.'>'), '', $content);
}
else
return '';
}
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
echo getAsXMLContent($xml->child); // prints Hello World
때로는 간단히 타입 캐스트 할 수 있습니다.
// this is the value of my $xml
object(SimpleXMLElement)#10227 (1) {
[0]=>
string(2) "en"
}
$s = (string) $xml; // returns "en";
$xmlitem->description
. 감사.