парсинг SimpleXML - PullRequest
       1

парсинг SimpleXML

1 голос
/ 06 сентября 2011

Я пытаюсь разобрать XML с помощью simpleXML в PHP.

Однако у меня проблема в том, что некоторые узлы имеют такие значения, как Milk & Cheese, и я получаю ошибку разбора.

Какой самый простой способ синтаксического анализа XML с использованием simpleXML с такими символами, как & и / или присутствует?

Спасибо

РЕДАКТИРОВАТЬ:

Я использую:

 $source = 'stockdata.xml';
 $stock =  simplexml_load_file($source);

foreach($stock->StockItem as $item)
{
 ........
}

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Вам необходимо использовать XML (и HTML) сущности .Вместо Milk & Cheese используйте Milk & Cheese.Вы можете найти полный список на W3Schools .

2 голосов
/ 06 сентября 2011

быстрое решение:

$xml = str_replace('&','&',$xml); //$xml is the content in string format

лучшее решение: [если вы контролируете xml]

добавьте CDATA в теги xml

<name><![CDATA[ Milk & honey]]></script> 

и вам нужно будет сказать SimpleXml, чтобы он позаботился о CDATA:

$sxml = simplexml_load_file('myfile.xml','SimpleXMLElement', LIBXML_NOCDATA);

Надеюсь, это поможет

...