2011-09-06 7 views
1

PHP에서 simpleXML을 사용하여 XML을 구문 분석하려고합니다.simpleXML 구문 분석

내가 가지고있는 문제는 일부 노드가 Milk & Cheese 같은 값을 가지고 있으며 구문 분석 오류가 발생한다는 것입니다.

& 및 존재하는 문자와 함께 simpleXML을 사용하여 XML을 구문 분석하는 가장 쉬운 방법은 무엇입니까?

감사

편집

:

내가 사용은 :

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

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

-1 심지어 마지막 편집하기 전에, 여기 좀 거친 데 도움이됩니다. 그렇지 않으면 +1 +1 – Dlongnecker

답변

2

빠른 해결책 :

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

더 나은 솔루션 :

XML 태그에

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

을 CDATA를 추가하고거야 [당신은 XML을 제어 할 경우] CDATA를 처리하도록 SimpleXml에 알려야합니다.

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

희망이

+0

'file_get_contents'를 사용하여 XML을 읽는 방법을 변경해야했습니다. 모두는 지금 ok 인 것처럼 보인다. – terrid25

3

당신은 XML (and HTML) entities를 사용해야합니다. Milk & Cheese 대신 Milk &amp; Cheese을 사용하십시오. W3Schools에서 전체 목록을 찾을 수 있습니다.

+0

이 작업을 수행하는 PHP 함수는 htmentites()입니다. 그래서 다음과 같이 할 수 있습니다 : $ str = htmlentities ($ str, ENT_QUOTES, $ encoding); ENT_QUOTES는 따옴표를 처리하는 방법을 나타내며 $ encoding은 선택 사항이지만 포함하는 것이 좋습니다. – perilandmishap