온라인 상점에서 특정 XML 형식으로 검색된 제품을 사용하여 도매 업체 사이트로 가져 오기 위해 XML을 생성하는 데 어려움을 겪고 있습니다. 그것은이 URL을 통해이라도 :XML 데이터 생성 중 오류 발생
http://movilterra.com/solostocks/
방법 나는 그것이 출력에 전송이 XML 템플릿에 제품의 배열을 통과 수행하십시오 CDATA 블록
<?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
<SINCRO_DETAILS>
<COMPANY></COMPANY>
<COUNTRY>67</COUNTRY>
<PRODUCTS>
<?php
foreach ($products as $product):
?>
<PRODUCT>
<PRODUCT_ID><?php echo $product['id_product'] ?></PRODUCT_ID>
<TITLE><?php echo '<![CDATA[' . $product['product_name'] . ']]' ?></TITLE>
<DESCRIPTION><?php echo '<![CDATA[' . $product['description_short'] . ']]' ?></DESCRIPTION>
<SECTOR><?php echo $product['sector'] ?></SECTOR>
<PRICE><?php echo $product['price'] ?></PRICE>
<SHIPPING>48</SHIPPING>
<MINIMUM><?php echo $product['minimal_quantity'] ?></MINIMUM>
<UNIT_TYPE>9</UNIT_TYPE>
<PHOTOS>
<PHOTO><?php echo $product['imagen'] ?></PHOTO>
</PHOTOS>
<KEYWORDS>
<?php
$keywords = explode(',', $product['meta_keywords']);
foreach ($keywords as $keyword):
?>
<KEYWORD><?php echo '<![CDATA[' . $keyword . ']]' ?></KEYWORD>
<?php
endforeach;
?>
</KEYWORDS>
</PRODUCT>
<?php
endforeach;
?>
</PRODUCTS>
</SINCRO_DETAILS>
주 아마도 문제의 근원 일 수 있기 때문입니다. 내가이 물결표 및 다른 문자의 오류를 방지하기 위해() utf8_encode를 사용
utf8_encode(preg_replace('/[\[\]\!]|CDATA/i', '', strip_tags($str)))
: 숫자하지 모든 문자열은 이전과 같이 그들을 변환하는 기능을 통해 여과되고있다. 그러나 나는 아직도이 오류가 있어요 : 라인 1247에
오류를 열 18 : 나는 URL 오류 라인 변경을 다시로드 문서
와 매번의 끝에 추가 컨텐츠를. 코드를 검사하면 첫 번째 TITLE 태그 (CDATA 블록 포함)가 다른 모든 콘텐츠를 삼키는 것으로 보입니다.
제발 저를 도와 주시겠습니까?
는
를 대신 XML을 생성하는 문자열을 연결의,하는 라이브러리를 사용 테스트를 거쳐 정확히 작동합니다. 여러 항목이 있는데, 엔트리 레벨과 관련된 Q & A는 다음과 같습니다. [PHP에서 XML 로의 PHP는 빈 나이를 표시합니다] (http://stackoverflow.com/q/16488993/367456). 처리가 쉽고 코드가 적으며 안전합니다. – hakre