2016-08-07 8 views
0

私はプロジェクトに取り組んでいて、レンガの壁にぶつかりました。私はウェブの周りを研究し、誰も私と同じ問題を抱えていると思わず、それはうんざりしています。私はsimplexml_load_string()から返品のフルxmlを得ることができません。私がsimplexmlを使用すると、問題が発生します。 :は、ほとんどの人が問題があると考えるところです。一番下の例の販売ランキングタグを見て、階層を見ると、名前空間が1つもないことがわかります。ここでは、元のXMLは次のとおりです。simplexmlでデータを修正する方法

<GetMatchingProductForIdResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01"> 
<GetMatchingProductForIdResult Id="883028968343" IdType="UPC" status="Success"> 
    <Products xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01" xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd"> 
     <Product> 
      <Identifiers> 
       <MarketplaceASIN> 
        <MarketplaceId>ATVPDKIKX0DER</MarketplaceId> 
        <ASIN>B007C435CW</ASIN></MarketplaceASIN> 
      </Identifiers> 
      <AttributeSets> 
       <ns2:ItemAttributes xml:lang="en-US"> 
       <ns2:Binding>Apparel</ns2:Binding> 
       <ns2:Brand>Secret Wishes</ns2:Brand> 
       <ns2:Color>Black</ns2:Color> 
       <ns2:Department>womens</ns2:Department> 
       <ns2:Feature>Black and gold musketeer or pirate costume</ns2:Feature> 
       <ns2:Feature>Features strapless corset with lace up back and matching mini skirt</ns2:Feature> 
       <ns2:Feature>Hat and choker included</ns2:Feature> 
       <ns2:Feature>Boots and sword available separately</ns2:Feature> 
       <ns2:Feature>Sexy wishes for playful adults is a division of rubies costume company</ns2:Feature> 
       <ns2:Genre>Historical</ns2:Genre> 
       <ns2:IsAdultProduct>false</ns2:IsAdultProduct> 
       <ns2:Label>Secret Wishes</ns2:Label> 
       <ns2:Manufacturer>Secret Wishes</ns2:Manufacturer><ns2:Model>889683XS</ns2:Model> 
       <ns2:PackageDimensions> 
        <ns2:Height Units="inches">1.10</ns2:Height> 
        <ns2:Length Units="inches">14.50</ns2:Length> 
        <ns2:Width Units="inches">11.40</ns2:Width> 
        <ns2:Weight Units="pounds">0.90</ns2:Weight> 
       </ns2:PackageDimensions> 
       <ns2:ProductGroup>Apparel</ns2:ProductGroup> 
       <ns2:ProductTypeName>ADULT_COSTUME</ns2:ProductTypeName>  
       <ns2:Publisher>Secret Wishes</ns2:Publisher> 
       <ns2:Size>X-Small</ns2:Size> 
       <ns2:SmallImage> 
        <ns2:URL>http://ecx.images-amazon.com/images/I/41YPo629q4L._SL75_.jpg</ns2:URL> 
        <ns2:Height Units="pixels">75</ns2:Height> 
        <ns2:Width Units="pixels">37</ns2:Width> 
       </ns2:SmallImage> 
      </AttributeSets> 
      <SalesRankings> 
       <SalesRank> 
        <ProductCategoryId>office_product_display_on_website</ProductCategoryId> 
        <Rank>259</Rank> 
       </SalesRank> 
      </SalesRankings> 

      ECT... 

私はprint_r(simplexml_load_string(curl_exec($ch);を行うときに私が取得応答はこれです:

SimpleXMLElement Object 
(
[GetMatchingProductForIdResult] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [Id] => 883028968343 
       [IdType] => UPC 
       [status] => Success 
      ) 

     [Products] => SimpleXMLElement Object 
      (
       [Product] => SimpleXMLElement Object 
        (
         [Identifiers] => SimpleXMLElement Object 
          (
           [MarketplaceASIN] => SimpleXMLElement Object 
            (
             [MarketplaceId] => ATVPDKIKX0DER 
             [ASIN] => B007C435CW 
            ) 

          ) 

         [AttributeSets] => SimpleXMLElement Object 
          (
          ) 

         [Relationships] => SimpleXMLElement Object 
          (
           [VariationParent] => SimpleXMLElement Object 
            (
             [Identifiers] => SimpleXMLElement Object 
              (
               [MarketplaceASIN] => SimpleXMLElement Object 
                (
                 [MarketplaceId] => ATVPDKIKX0DER 
                 [ASIN] => B00B7DAJAA 
                ) 

              ) 

            ) 

          ) 

         [SalesRankings] => SimpleXMLElement Object 
          (
          ) 

        ) 

      ) 

    ) 

私は可能性の問題が何であるかを理解していません。このデータの主な目標はJSONにプッシュすることです。誰かが私を助けることができたら、私はそれを高く評価します。ありがとう!

+0

[単純なXML - ノードでコロンを扱う]の複製があります。(http://stackoverflow.com/questions/1186107/simple-xml-dealing-with-colons-in-nodes) – ThW

+0

私はあなたを探していません結腸の節をどう扱うか教えてください。 Not Even Salesランキングが表示されています。 – McStuffins

+1

コロンは、名前空間接頭辞をローカルノード名から区切ります。あなたのノードには名前空間があります。名前空間でXMLを読み取る方法を学ぶ必要があります。文字を置き換えるだけでいくつかの方法で壊れています。まず、名前空間接頭辞は実際の名前空間ではありません。それは変更することができ、オプションです。次に、文字はファイルの他の部分で定期的に発生する可能性があります。 – ThW

答えて

-1

タグ名に ':'記号があるため、simplexmlが正しく動作していないようです。 :「」:あなたはすべてを置き換えることができます

$xml = str_replace (':', '_', $xml); 

またはhereを説明し、別の解決策を探してください。

+0

これを行うと、なぜ販売ランキングが表示されないのですか? – McStuffins

+0

curl_execがあなたのXMLファイルを完全にロードしたことを確認しましたか? – stweb

+0

もしそうなら、この[質問](http://stackoverflow.com/questions/15553519/parsing-amazon-mws-scratchpad-response)も見てください。解析する前にXMLを変換するコードがあります。 – stweb

関連する問題