Мне нужно добавить нового дочернего элемента в тег XML с помощью PHP.
Я создал небольшой сценарий PHP, чтобы открыть FTP-соединение с папкой, в которой находится файл XML для редактирования, и использовать SimpleXML для редактирования.и добавьте нового потомка в этот файл.
<html lang="it">
<head>
<title>Modifica Fattura</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body style="text-align: center;">
<h2 class="text-center">Modifica</h2>
<form style="display: inline-block;" method="post">
<input type="text" name="nome_file" placeholder="Inserisci il nome del file">
<br>
<select name="banca">
<option value="000000936">INT</option>
<option value="000092413">BIO</option>
</select>
<br>
<input type="submit" name="invia" value="Modifica XML">
</form>
<?php
$ftp_server = "xxx.xxx.xxx.xxx";
$ftp_username = "xxxxxxx";
$ftp_password = "xxxxxxx";
$conn_ftp = ftp_connect($ftp_server) or die ("Non posso connettermi al server FTP");
$login_ftp = ftp_login($conn_ftp,$ftp_username,$ftp_password);
if ($login_ftp){
if (isset($_POST['nome_file'])) {
$nome_file = $_POST['nome_file'];
$fp = fopen($nome_file,'w');
$banca = $_POST ['banca'];
$xml = simplexml_load_file($nome_file);
if ($xml){
$fatt_primo = $xml->FatturaElettronicaBody;
$pagamento = $fatt_primo->addChild('DatiPagamento');
$dettaglio_pagamento = $pagamento->addChild('DettaglioPagamento');
$dettaglio_pagamento->addChild('IBAN', $banca);
$xml->asXML($nome_file);
}
fclose($fp);
}
}
?>
</body>
</html>
Я ожидаю, что код добавит два тега внутрь <FatturaElettronicaBody>
.
У меня есть этот XML:
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" versione="FPR12" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>1122</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>2</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>SSDPV</CodiceDestinatario>
<ContattiTrasmittente>
<Telefono>1223111</Telefono>
<Email>email@email.it</Email>
</ContattiTrasmittente>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>88855443</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>REREWRWE</Denominazione>
</Anagrafica>
<RegimeFiscale>RF17</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA PIPPO</Indirizzo>
<CAP>06000</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
<Contatti>
<Telefono>12321321</Telefono>
<Email>EMAIL@EMAIL.IT</Email>
</Contatti>
<RiferimentoAmministrazione>7</RiferimentoAmministrazione>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>00123321321</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>00123321321</CodiceFiscale>
<Anagrafica>
<Denominazione>FRITTTROP</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA ELSI</Indirizzo>
<CAP>00100</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2019-04-08</Data>
<Numero>12</Numero>
<ImportoTotaleDocumento>384.30</ImportoTotaleDocumento>
<Causale>Fattura</Causale>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>TEST</Descrizione>
<PrezzoUnitario>250.00</PrezzoUnitario>
<PrezzoTotale>250.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>315.00</ImponibileImporto>
<Imposta>69.30</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
</FatturaElettronicaBody>
</p:FatturaElettronica>
и я хочу добавить еще два тега:
<FatturaElettronicaBody>
<DatiPagamento>
<DettaglioPagamento>
<IBAN>12312312</IBAN>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>