6

PHP と DOM ドキュメントを使用して Google Merchant のフィードを作成しようとしています。

フィードには何千もの項目が含まれていますが、検証に失敗するのは、XML の形式が正しくないごく少数のケース (6000 件中 4/5 件以上) があるためです。次に例を示します。

 <g:product_type>Plantsg:product_type>

foreach ループで生成しています

    //Loop through each plant
    foreach($plantList as $plantItem){

        //begin item element
        $item = $xml->createElement('item');


        //Loop through use key as element name and value as data
        foreach ($plantItem as $key => $value)
        {
            //Decode HTML characters, for example '&' becomes  &amp
            //to comply with http://www.w3.org/TR/xhtml1/#C_12
            $decode = htmlspecialchars_decode($value);
            $decode = trim($decode);

            if(empty($decode))
              continue;

            //Create the element
            $tag = $xml->createElement($key);
            $tag = $item->appendChild($tag);

            //Write the field
            $text = $xml->createTextNode($decode);
            $text = $tag->appendChild($text);

        }
        $item = $channel->appendChild($item);
    }

xml 全体の生成コードを次に示します。

3 つの不正なタグを次に示します。

g:adwords_grouping>18</g:adwords_grouping>

form>10 ltr pot</form>

title>Buy Helleborus x nigercors</title>

コードを調整すると、不正なタグがさまざまな場所に表示されます。通常、そのどちらかが欠けています '

4

2 に答える 2

0

私は@aefxxと一緒です。不正な形式の開始タグが表示される行の直前と直後に数行を提供していただけると助かります(あなたが示したすべての例では、開始タグに1文字しか欠けていないようです)。

于 2013-01-25T05:36:21.467 に答える