Я пытаюсь сделать то, что, по моему мнению, должно быть довольно простым. Я хочу взять XML-строку из текстового поля и преобразовать ее в объект SimpleXML для разбора, как только у меня будут данные в объекте SimpleXML, я загружу его в базу данных (в этой части у меня нет проблем) для последующего использования.SimpleXML PHP не может создать объект
код кажется достаточно простым и мой XML, кажется, в порядке, но я получаю:
[30-Dec-2014 16:48:15 UTC] Error parsing XML file : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE2 0x7A 0x7A 0x6F
upload.php
<form action="parse.php" method="get">
<textarea name="XML" rows="20" cols="60">Delete this text and Paste XML string here... </textarea>
<br></br>
<input type="submit" value="Upload Data">
</form>
Parse.php
<?php $myXMLData = $_GET["XML"];
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
Текст XML - Насколько я могу судить по проверке XML W3Schools, формат в порядке.
<ksk date="2014-12-29" time="14:46">
<classes>
<c id="08" v="mage"/>
<c id="09" v="warlock"/>
<c id="00" v="unknown"/>
<c id="10" v="monk"/>
<c id="07" v="shaman"/>
<c id="06" v="deathknight"/>
<c id="05" v="priest"/>
<c id="04" v="rogue"/>
<c id="02" v="paladin"/>
<c id="03" v="hunter"/>
<c id="11" v="druid"/>
<c id="01" v="warrior"/>
</classes>
<users>
<u id="0011" n="Spâzzo-zul'jin" c="04"/>
<u id="001a" n="Txxstorm-zul'jin" c="01"/>
<u id="0007" n="Derider-zul'jin" c="09"/>
<u id="0019" n="Pseven-zul'jin" c="07"/>
<u id="0009" n="Papadruid-zul'jin" c="11"/>
<u id="0014" n="Ellenplague-zul'jin" c="06"/>
<u id="0017" n="Nito-zul'jin" c="06"/>
<u id="0003" n="Valdarixie-zul'jin" c="10"/>
<u id="0012" n="Tekvar-zul'jin" c="11"/>
<u id="0015" n="Kangdandy-zul'jin" c="03"/>
<u id="0013" n="Tissie-zul'jin" c="02"/>
<u id="0016" n="Moonfrosty-zul'jin" c="08"/>
<u id="0002" n="Staysha-zul'jin" c="11"/>
<u id="000a" n="Pogozorro-zul'jin" c="10"/>
<u id="0004" n="Shauleata-zul'jin" c="01"/>
<u id="0001" n="Blackòut-zul'jin" c="02"/>
</users>
<lists>
<list id="141215a9edbda8" n="MaS Priority">
<u id="0011"/>
<u id="001a"/>
<u id="0007"/>
<u id="0019"/>
<u id="0009"/>
<u id="0014"/>
<u id="0017"/>
<u id="0003"/>
<u id="0012"/>
<u id="0015"/>
<u id="0013"/>
<u id="0016"/>
<u id="0002"/>
<u id="000a"/>
<u id="0004"/>
<u id="0001"/>
</list>
<list id="141215b1c46373" n="MaS Raid">
<u id="0013"/>
<u id="0002"/>
<u id="0016"/>
<u id="0007"/>
<u id="0015"/>
<u id="0001"/>
<u id="0003"/>
<u id="0017"/>
<u id="0014"/>
<u id="0019"/>
<u id="0012"/>
<u id="001a"/>
<u id="0011"/>
<u id="000a"/>
<u id="0004"/>
<u id="0009"/>
</list>
</lists>
</ksk>
Любые предложения или указатели о том, как лучше разобрать этот XML и получить его в базу данных
Пробовал ли вы проверять/выводить ошибку с помощью 'libxml_get_errors()', а не просто '' Ошибка: не удается создать объект? 'String literal? Кроме того, я думаю, ваша проблема в том, что вам не хватает объявления xml: '' –
Можете ли вы предоставить вывод 'var_dump ($ myXMLData)' в свой вопрос? Кроме того, зачем использовать GET здесь вместо POST? POST выглядит более уместным. –
Отредактированное сообщение с информацией об ошибке error log – JamesW