XML 파일을 처리하는 데 simpleXML을 사용합니다. 그것은 키릴 문자가 있습니다. 또한 dom_import_simplexml
, importNode
및 appendChild
을 사용하여 파일에서 파일로 트리를 복사하고 배치 할 수 있습니다. 처리가 끝나면 print_r
의 결과는 simpleXmlElement
이며 모든 것이 정상입니다. 하지만 나는 asXml('outputfile.xml')
을하고 이상한 일이 일어나고 있습니다. CDATA
(일부 태그 본문과 모든 속성)으로 묶이지 않은 모든 키릴 문자는 유니 코드 코드로 바뀝니다.SimpleXML이 이상한 방식으로 유니 코드를 출력합니다
예를 들어, print_r
의 출력 (단지 조각) :
SimpleXMLElement Object ([@attributes] => Array
([NAME] => Государственный аппарат и механизм
[COSTYES] => 3.89983579639 [COSTNO] => 0
[ID] => 9)
[COMMENTYES] => Вы совершенно правы.
[COMMENTNO] => Нет, Вы ошиблись.)))
그러나 asXml
가 생성하는 파일의
<QUEST NAME="Теория#x434;вухмечей"
style="educ" ID="1">
<DESC><![CDATA[Теория происхождения государства, известная как теория "двух мечей" [2, с.40],
представляет из себя...
]]></DESC>`
도처에 가능하다면 "simplexml, unicode, cyrillic, asXml 등"의 모든 조합을 봤지만 아무것도 작동하지 않았습니다.
UPD 사용되는 일부 기능처럼 보입니다 htmlentities()
. 따라서 voitcus 덕분에 해결책은 here으로 html_entity_decode()
을 사용하는 것입니다.
설명서의 토론 (의견)을 읽으십시오. http://www.php.net/manual/en/simplexmlelement.asxml.php – Voitcus
예를 들어 [this one] (http://www.php.net /manual/en/simplexmlelement.asxml.php#107137) – Voitcus
감사합니다. 나는 지금 내 자신이이 해결책에 어떻게 오지 않았는지 궁금해한다. – ba3a