用php替换XML中的属性值

时间:2017-12-27 16:23:57

标签: php json xml

我有下一个XML

<Addenda>
<PSV:Factura xmlns:PSV="http://www.vwnovedades.com/volkswagen/kanseilab/shcp/2009/Addenda/PSV" version="1.0" tipoDocumentoFiscal="FA" tipoDocumentoVWM="PSV"
             division="VW">
    <PSV:Moneda tipoMoneda="TEXTOMONEDA" codigoImpuesto="CODIGOIMPUESTO"/>
    <PSV:Proveedor codigo="CODPPROVEEDOR" nombre="EMISORNOMBRE" correoContacto="EMISORCORREO"/>
    <PSV:Solicitante nombre="NOMBRERECEP" correo="CORREORECEP"/>
    <PSV:Partes>
        <INILISTAPROD>
            <PSV:Parte posicion="NUMPARTIDANUMPARTIDA" descripcionMaterial="DESCRIPCION"
                       cantidadMaterial="CANTIDADMATERIAL" unidadMedida="UNIDMED" precioUnitario="PRECUNIT"
                       montoLinea="TOTAL" codigoImpuesto="CODIMP">
                <PSV:Referencias ordenCompra="ORDCOMPRA"/>
                <PSV:Nota>NOTA</PSV:Nota>
            </PSV:Parte>
        </INILISTAPROD>
    </PSV:Partes>
</PSV:Factura>
</Addenda>

我需要用大写字母用以下JSON

替换所有属性值
{
"CODIGOIMPUESTO": "1A",
"TEXTOMONEDA": "MXP",
"EMISORCORREO": "test@prodigy.net.mx",
"EMISORNOMBRE": "IVAN SANDER SANDER",
"CODPPROVEEDOR": "6001005599",
"CORREORECEP": "test@test.com",
"NOMBRERECEP": "omar json",
"Details": [
    {
        "DESCRIPCION": "AGUA CIEL DE 1.5 C/12 PZ",
        "CANTIDADMATERIAL": "19",
        "PRECUNIT": "127.5",
        "TOTAL": "2422.5",
        "NUMPARTIDA": "1",
        "UNIDMED": "PZA",
        "CODIMP": "12312312",
        "NOTA": "test",
        "ORDCOMPRA": "12312312"
    },
    {
        "DESCRIPCION": "AGUA CIEL DE 1 LT C/12 PZ",
        "CANTIDADMATERIAL": "15",
        "PRECUNIT": "127.5",
        "TOTAL": "1912.5",
        "NUMPARTIDA": "2",
        "UNIDMED": "PZA",
        "CODIMP": "asdasdas",
        "NOTA": "test",
        "ORDCOMPRA": "1231231"
    },
    {
        "DESCRIPCION": "TE FUZE TEA 6/600 ML",
        "CANTIDADMATERIAL": "4",
        "PRECUNIT": "96",
        "TOTAL": "384",
        "NUMPARTIDA": "3",
        "UNIDMED": "PZA",
        "CODIMP": "asdasdasd",
        "NOTA": "test",
        "ORDCOMPRA": "21312312a"
    },
    {
        "DESCRIPCION": "YAKULT C/30 PZ",
        "CANTIDADMATERIAL": "2",
        "PRECUNIT": "171.05",
        "TOTAL": "342.1",
        "NUMPARTIDA": "4",
        "UNIDMED": "PZA",
        "CODIMP": "asdasd1231",
        "NOTA": "test",
        "ORDCOMPRA": "asdasd22"
    }
]
}

但我的一个问题是节点INILISTAPROD和/ INILISTAPROD之间我需要循环json键细节中的信息。 结果应如下所示。

<Addenda>
<PSV:Factura xmlns:PSV="http://www.vwnovedades.com/volkswagen/kanseilab/shcp/2009/Addenda/PSV" version="1.0" tipoDocumentoFiscal="FA" tipoDocumentoVWM="PSV"
             division="VW">
    <PSV:Moneda tipoMoneda="MXP" codigoImpuesto="1A"/>
    <PSV:Proveedor codigo="6001005599" nombre="VAN SANDER SANDER" correoContacto="test@prodigy.net.mx"/>
    <PSV:Solicitante nombre="omar json" correo="test@test.com"/>
    <PSV:Partes>
            <PSV:Parte posicion="1" descripcionMaterial="AGUA CIEL DE 1.5 C/12 PZ"
                       cantidadMaterial="19" unidadMedida="PZA" precioUnitario="127.5"
                       montoLinea="2422.5" codigoImpuesto="12312312">
                <PSV:Referencias ordenCompra="12312312"/>
                <PSV:Nota>test</PSV:Nota>
            </PSV:Parte>
        <PSV:Parte posicion="2" descripcionMaterial="AGUA CIEL DE 1 LT C/12 PZ"
                   cantidadMaterial="15" unidadMedida="PZA" precioUnitario="127.5"
                   montoLinea="1912.5" codigoImpuesto="asdasdas">
            <PSV:Referencias ordenCompra="1231231"/>
            <PSV:Nota>test</PSV:Nota>
        </PSV:Parte>
        <PSV:Parte posicion="3" descripcionMaterial="TE FUZE TEA 6/600 ML"
                   cantidadMaterial="4" unidadMedida="PZA" precioUnitario="96"
                   montoLinea="384" codigoImpuesto="asdasdasd">
            <PSV:Referencias ordenCompra="21312312a"/>
            <PSV:Nota>test</PSV:Nota>
        </PSV:Parte>
        <PSV:Parte posicion="4" descripcionMaterial="YAKULT C/30 PZ"
                   cantidadMaterial="2" unidadMedida="PZA" precioUnitario="171.05"
                   montoLinea="342.1" codigoImpuesto="asdasd1231">
            <PSV:Referencias ordenCompra="asdasd22"/>
            <PSV:Nota>test</PSV:Nota>
        </PSV:Parte>
    </PSV:Partes>
</PSV:Factura>
</Addenda>

我尝试使用简单的xml加载文件,但文件未加载。 而且我不知道我是否应该使用简单的xml o某种常规表达式。

0 个答案:

没有答案