所以我有这个XML,我试图通过php的SimpleXML类阅读。
<ns0:ASN xmlns:ns0="http://schemas.microsoft.com/dynamics/2008/01/documents/ASN">
<CustPackingSlipJour xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/ASN" class="entity">
<BON_FileNameSeqNum>4</BON_FileNameSeqNum>
<!-- funktionell: Internt löpnr -->
<BON_TotalNetAmount>726.00</BON_TotalNetAmount>
<!-- funktionell: Totalt belopp -->
<BON_TotalTaxAmount>181.50</BON_TotalTaxAmount>
<!-- funktionell: Momsbelopp -->
<InvoiceAccount>9001</InvoiceAccount>
<!-- funktionell: -->
<LanguageId>SV</LanguageId>
<!-- funktionell: Språk -->
<OrderAccount>9001</OrderAccount>
<!-- funktionell: Butiks nr för intern användning! -->
<Qty>4.00</Qty>
<!-- funktionell: Total lev kvant! -->
<SalesId>24</SalesId>
<!-- funktionell:Försäljningsordernr! -->
<CustPackingSlipTrans class="entity">
<BON_LineNetAmount>149.00</BON_LineNetAmount>
<!-- funktionell: Orderradsbelopp! -->
<BON_SalesPrice>0.00</BON_SalesPrice>
<!-- funktionell: Försäljningspris! -->
<DeliveryDate>2014-09-09</DeliveryDate>
<!-- funktionell: Leveransdag! -->
<ItemId>10001</ItemId>
<!-- funktionell: Artikelnr! -->
<Ordered>1.00</Ordered>
<!-- funktionell:Beställd kvantitet! -->
<PackingSlipId>00000004_061</PackingSlipId>
<!-- funktionell: -->
<Qty>1.00</Qty>
<!-- funktionell:Levererad kvantitet! -->
<InventReportDimHistory class="entity">
<InventDim class="entity"/>
</InventReportDimHistory>
</CustPackingSlipTrans>
我试图通过代码访问它的元素: -
<?php
$asn=simplexml_load_file("ASN.xml");
echo $asn->CustPackingSlipTrans[0]->ItemId;
?>
但这似乎并没有奏效。我得到一个空白输出。我已经阅读了一些关于Simplexml类的教程,并且已经达到了这个代码。但我不确定我在这里做错了什么。 我如何访问XML的每个元素?
所有建议都表示赞赏。
答案 0 :(得分:1)
您应该始终尝试遵循以下顺序: -
echo $objectname->parentname->childname->subchild
这始终有效。但是,您应该始终缩进XML。这是主要要求。如果你缩进,你可以很容易地看到哪个是父元素,哪个是子元素。
答案 1 :(得分:0)
如果你的XML正确缩进,你就会看到它:
<CustPackingSlipJour ...>
...
<CustPackingSlipTrans ...>
...
<ItemId>10001</ItemId>
所以你的代码应该是:
echo $asn->CustPackingSlipJour[0]->CustPackingSlipTrans[0]->ItemId;
^^^^^^^^^^^^^^^^^^^^^^^^