Im는 XML 파일을 구문 분석하지만 태그 (": g")와 관련된 몇 가지 문제가 있는데, 정보에 액세스 할 수 없습니다. 콘텐츠는 카테고리를 얻으려고 할 때 발생합니다. 하나 이상의 카테고리.모든 Google 태그 검색 xml
XML : 내가 예를 들어, 사용 범주를 얻는 시도
<item>
<g:id>4011700742288</g:id>
<title><![CDATA[4711 Acqua Colonia Blood Orange & Basil Eau de Cologne 170ml]]></title>
<link><![CDATA[https://url/asdasd.html]]></link>
<g:image_link><![CDATA[https://url/media/catalog/product/4/7/4711-acqua-colonia-blood-_2.jpg]]></g:image_link>
<g:price>34.86 EUR</g:price>
<g:product_type><![CDATA[Mulher]]></g:product_type>
<g:product_type><![CDATA[Homem]]></g:product_type>
<g:product_type><![CDATA[Unisexo]]></g:product_type>
</item>
는 :
$categories = $item->children('g', TRUE)->product_type;
그러나 그것은 단지 첫 번째 범주를 가져온다는 범주의 나머지 부분에 geting되지 않습니다. 위의 코드는 데이터를 얻는 방법을 보여주는 코드 예제입니다. 예 :
foreach($rss->channel->item as $item) {
$categories = $item->children('g', TRUE)->product_type;
// bringing in to array <content:encoded> items from SimpleXMLElement Object()
$content = xmlObjToArr($item->children('content', true)->encoded);
echo $categories . PHP_EOL;
return;
}
function xmlObjToArr($obj) {
$namespace = $obj->getDocNamespaces(true);
$namespace[NULL] = NULL;
$children = array();
$attributes = array();
$name = strtolower((string)$obj->getName());
$text = trim((string)$obj);
if(strlen($text) <= 0) {
$text = NULL;
}
// get info for all namespaces
if(is_object($obj)) {
foreach($namespace as $ns=>$nsUrl) {
// atributes
$objAttributes = $obj->attributes($ns, true);
foreach($objAttributes as $attributeName => $attributeValue) {
$attribName = strtolower(trim((string)$attributeName));
$attribVal = trim((string)$attributeValue);
if (!empty($ns)) {
$attribName = $ns . ':' . $attribName;
}
$attributes[$attribName] = $attribVal;
}
// children
$objChildren = $obj->children($ns, true);
foreach($objChildren as $childName=>$child) {
$childName = strtolower((string)$childName);
if(!empty($ns)) {
$childName = $ns.':'.$childName;
}
$children[$childName][] = xmlObjToArr($child);
}
}
}
return array(
'name'=>$name,
'text'=>$text,
'attributes'=>$attributes,
'children'=>$children
);
}
: 당신이
당신이 목록 작업을 기대 정확히 어떻게 작동 당신이 보여 주면, 당신이 [편집]하고 예제에서 제거 할 수 있습니다. 내 충고는 코드에서 코드를 제거하고 SimpleXML 객체를 사용하기위한 목적으로 사용하는 것입니다. – IMSoPforeach
를 사용 - 요소의 컬렉션을 통해 반복