как разобрать XML как PHP - PullRequest
       2

как разобрать XML как PHP

0 голосов
/ 12 октября 2019

У меня есть приложение, которое позволяет загружать XML-файл, который я хотел бы проанализировать как php, однако при этом я получаю сообщение об ошибке:

uncaught Исключение: строка не может быть проанализированакак XML в .......

В настоящее время я обращаюсь к .xml из папки в приложении, используя функцию simplexml_load_file.

Я знаю, что это возвращаетсодержимое файла, как я могу их видеть, если я использую функцию print_r на странице

Бит, который я, кажется, не знаю, это то, как и где я добавляю теги xml

ЕслиЯ жестко закодировал содержимое xml в переменную $ xmlstr и убедился, что с помощью тегов XMl все работает так, как я хочу.

Как только я пытаюсь сохранить XML в переменной, я получаюследующее:

Предупреждение: SimpleXMLElement :: __ construct (): Сущность: строка 3: ошибка синтаксического анализатора: ожидается начальный тег, '<' не найден в ........ </p>

Предупреждение: SimpleXMLElement :: __ construct (): in .......

Предупреждение: SimpleXMLElement :: __ construct (): ^ in .......

Неустранимая ошибка: Uncaught Исключение: Строка не может быть проанализирована как XML в .....

SimpleXMLElement -> конструкция __ ('\ n \ n') # 1 {main} добавлена ​​.......

<?php
$xml=simplexml_load_file("output.xml");
$array = (array) $xml;
$xmlstr = $xml;
?>

Я бы хотел иметь возможностьпарсит содержимое $ xmlstr

содержимое файла xml:

<?xml version="1.0" encoding="UTF-8"?>
<robot rpa="false" generated="20190905 22:17:06.914" generator="Robot 
3.1.2 (Python 2.7.10 on darwin)">
<suite source="../testXML.robot" id="s1" name="testXML">
<test id="s1-t1" name="[TC001] TEST 001">
<kw name="Open Browser" library="SeleniumLibrary">
<doc></doc>
<arguments>
<arg></arg>
<arg></arg>
</arguments>
<msg timestamp="20190905 22:17:07.774" level="INFO"></msg>
<status status="PASS" endtime="20190905 22:17:10.930" 
starttime="20190905 22:17:07.774"></status>
</kw>
<kw name="Close Browser" library="SeleniumLibrary">
<doc></doc>
<status status="PASS" endtime="20190905 22:17:11.062" 
starttime="20190905 22:17:10.933"></status>
</kw>
<status status="PASS" endtime="20190905 22:17:11.062" critical="yes" 
starttime="20190905 22:17:07.773"></status>
</test>

<test id="s1-t2" name="[TC002] TEST 002">
<kw name="Open Browser" library="SeleniumLibrary">
<doc></doc>
<arguments>
<arg></arg>
<arg></arg>
</arguments>
<msg timestamp="20190905 22:17:11.064" level="INFO"></msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc></doc>
<msg timestamp="20190905 22:17:11.088" level="INFO"></msg>
<status status="PASS" endtime="20190905 22:17:11.088" starttime="20190905 22:17:11.087"></status>
</kw>
<msg timestamp="20190905 22:17:11.142" level="FAIL">
</msg>
<status status="FAIL" endtime="20190905 22:17:11.142" starttime="20190905 22:17:11.063"></status>
</kw>
<status status="FAIL" endtime="20190905 22:17:11.142" critical="yes" starttime="20190905 22:17:11.063">
</status>
</test>
<status status="FAIL" endtime="20190905 22:17:11.143" starttime="20190905 22:17:06.915"></status>
</suite>
</robot>

если я скопирую содержимое файла в него, оно будет работать:

<?php
$xml=simplexml_load_file("output.xml");
$array = (array) $xml;
$xmlstr = <<<XML *file contents copied to here*

XML;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...