如何在 PHP 中访问此 XML 文件中的数据?
How to access the data in this XML file in PHP?
所以我有一张 XML 发票,我想访问其中的数据,但我完全不知道该怎么做。我尝试按照各种在线指南进行操作,但没有任何效果,我的错误为零,但结果为零。
XML是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<dat:dataPack id="fa001" application="StwTest" version="2.0" note="Import" xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" xmlns:inv="http://www.stormware.cz/schema/version_2/invoice.xsd" xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd">
<dat:dataPackItem id="20007" version="2.0">
<inv:invoice version="2.0">
<inv:invoiceHeader>
<inv:invoiceType>issuedInvoice</inv:invoiceType>
<inv:number>
<typ:numberRequested>20007</typ:numberRequested>
</inv:number>
<inv:paymentType>
<typ:paymentType>draft</typ:paymentType>
</inv:paymentType>
<inv:carrier>
<typ:ids>magic horse</typ:ids>
</inv:carrier>
<inv:numberOrder>20007</inv:numberOrder>
<inv:symVar>20007</inv:symVar>
<inv:date>2020-05-11</inv:date>
<inv:dateTax>2020-05-13</inv:dateTax>
<inv:dateDue>2020-05-27</inv:dateDue>
</inv:invoiceHeader>
</inv:invoice>
</dat:dataPackItem>
</dat:dataPack>
例如,我想访问日期 2020-05-11,所以我尝试了这个:
$payment_vat_xml = simplexml_load_file(filepath);
echo $payment_vat_xml->{'dat:dataPackItem'}->{'inv:invoice'}->{'inv:invoiceHeader'}->{'inv:date'};
但是我没有得到结果。
任何帮助将不胜感激,干杯。
正确的做法是使用
echo $payment_vat_xml->xpath('/dat:dataPack/dat:dataPackItem/inv:invoice/inv:invoiceHeader/inv:date')[0];
详细解释可以在这里找到:
所以我有一张 XML 发票,我想访问其中的数据,但我完全不知道该怎么做。我尝试按照各种在线指南进行操作,但没有任何效果,我的错误为零,但结果为零。
XML是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<dat:dataPack id="fa001" application="StwTest" version="2.0" note="Import" xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" xmlns:inv="http://www.stormware.cz/schema/version_2/invoice.xsd" xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd">
<dat:dataPackItem id="20007" version="2.0">
<inv:invoice version="2.0">
<inv:invoiceHeader>
<inv:invoiceType>issuedInvoice</inv:invoiceType>
<inv:number>
<typ:numberRequested>20007</typ:numberRequested>
</inv:number>
<inv:paymentType>
<typ:paymentType>draft</typ:paymentType>
</inv:paymentType>
<inv:carrier>
<typ:ids>magic horse</typ:ids>
</inv:carrier>
<inv:numberOrder>20007</inv:numberOrder>
<inv:symVar>20007</inv:symVar>
<inv:date>2020-05-11</inv:date>
<inv:dateTax>2020-05-13</inv:dateTax>
<inv:dateDue>2020-05-27</inv:dateDue>
</inv:invoiceHeader>
</inv:invoice>
</dat:dataPackItem>
</dat:dataPack>
例如,我想访问日期 2020-05-11,所以我尝试了这个:
$payment_vat_xml = simplexml_load_file(filepath);
echo $payment_vat_xml->{'dat:dataPackItem'}->{'inv:invoice'}->{'inv:invoiceHeader'}->{'inv:date'};
但是我没有得到结果。
任何帮助将不胜感激,干杯。
正确的做法是使用
echo $payment_vat_xml->xpath('/dat:dataPack/dat:dataPackItem/inv:invoice/inv:invoiceHeader/inv:date')[0];
详细解释可以在这里找到: