为了账号安全,请及时绑定邮箱和手机立即绑定

使用 simplexml 用 PHP 解析 XML

使用 simplexml 用 PHP 解析 XML

PHP
郎朗坤 2023-04-28 15:12:05
我正在使用 Amazon Marketplace Web Service (Amazon MWS) 获取产品。我需要获得第一个产品的标题:对于 ASIN,我可以使用:$xml->ListMatchingProductsResult->Products->Product[0]->Identifiers->MarketplaceASIN->ASIN但是对于标题,我不知道是因为“ns2”。这是 XML 数据:<?xml version="1.0"?><ListMatchingProductsResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01">  <ListMatchingProductsResult>    <Products>      <Product>        <Identifiers>          <MarketplaceASIN>            <MarketplaceId>A2EUQ1WTGCTBG2</MarketplaceId>            <ASIN>B01MYV7W6A</ASIN>          </MarketplaceASIN>        </Identifiers>        <AttributeSets>          <ns2:ItemAttributes xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd" xml:lang="en-CA">            <ns2:Binding>Automotive</ns2:Binding>            <ns2:Brand>Multiple Manufacturers</ns2:Brand>            <ns2:ItemDimensions>              <ns2:Weight Units="pounds">12</ns2:Weight>            </ns2:ItemDimensions>            <ns2:Label>Multiple Manufacturers</ns2:Label>            <ns2:Manufacturer>Multiple Manufacturers</ns2:Manufacturer>            <ns2:Model>AC1000149R</ns2:Model>            <ns2:PackageDimensions>              <ns2:Height Units="inches">18</ns2:Height>              <ns2:Length Units="inches">78</ns2:Length>              <ns2:Width Units="inches">38</ns2:Width>              <ns2:Weight Units="pounds">12</ns2:Weight>            </ns2:PackageDimensions>            <ns2:PackageQuantity>1</ns2:PackageQuantity>            <ns2:PartNumber>AC1000149R</ns2:PartNumber>            <ns2:ProductGroup>Automotive Parts and Accessories</ns2:ProductGroup>            <ns2:ProductTypeName>AUTO_ACCESSORY</ns2:ProductTypeName>            <ns2:Publisher>Multiple Manufacturers</ns2:Publisher>
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

这是我找到的解决方案:


$ItemAttributes = $xml->ListMatchingProductsResult->Products->Product[$i]->AttributeSets->ItemAttributes;

$ItemAttributes->registerXPathNamespace('ns2', 'http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd');

$titles = $ItemAttributes->xpath("//ns2:Title");  // <= this is array


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信