繁体   English   中英

如何使用php获取xml上的特定值?

[英]How to get specific values on an xml using php?

我正在使用 html 和 php 创建一个简单的 Web 应用程序,该应用程序读取用户在网页上提供的 XML 文件,然后在其上打印一些值内容。

这些文件通过 POST 发送到服务器,然后由 php 脚本读取。

这是我的 xml 测试文件的片段:

<cfdi:Impuestos totalImpuestosTrasladados="72.07">
    <cfdi:Traslados>
        <cfdi:Traslado importe="50.00" impuesto="IEPS" tasa="16.00"/>
        <cfdi:Traslado importe="22.07" impuesto="IVA" tasa="16.00"/>
    </cfdi:Traslados>
</cfdi:Impuestos>

这是我在 php 上编写的代码:

<?php

foreach ($_FILES['archivos']['name'] as $f => $name) {
$tempPath = $_FILES["archivos"]["tmp_name"][$f];

//Load xml file directly on the temp path
$xml        = simplexml_load_file($tempPath, null, true);
$namespaces = $xml->getDocNamespaces();

//Creating and loading DOM object
$dom = new DOMDocument('1.0','utf-8');
$dom->load($tempPath);

//Getting IVAs' values
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Impuestos//cfdi:Traslados//cfdi:Traslado') as $impuestos){
    $IVA = $impuestos['importe'];
    echo("IVA = ".$IVA."<br>");
}
}
?>

那打印:

IVA = 50.00
IVA = 22.07

打印截图

在这种情况下,我只想打印 IVA 的值,但它也需要 IEPS 的值,因为 IEPS 与 IVA 位于同一路径上。 这些值仅在文件的这一部分,我不知道是否有办法将它们分开。

我只想选择 IVA 的值。 你能帮我吗?:(

完整的 XML 文件是: 这里

尝试:

foreach ($xml->xpath("//cfdi:Comprobante//cfdi:Impuestos//cfdi:Traslados//cfdi:Traslado[@impuesto='IVA']") as $impuestos){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM