对不起,如果后是建设差,我是新的,这一切,还在学习。
根据我的理解,第一行必须是标签名称,第二行是它们的值。由于我是一个初学者,所以很难理解如何使用该数组并将其放入一个单元格中的一行。从我的输出来看,前10行也不应该存在,但我不知道如何在创建数组时跳过它们。
下面是我用于生成结果的PHP代码:
<?php
$xmlraw = 'plik_wejsciowy.xml';
if (file_exists($xmlraw)) {
$xml_content = simplexml_load_file($xmlraw);
$a = fopen('plik_wyjściowy.csv', 'w');
Csv($xml_content, $a);
fclose($a);
}
function Csv($xml_content, $a)
{
foreach ($xml_content->children() as $item) {
$hasChild = (count($item->children()) > 0) ? true : false;
if (!$hasChild) {
$array = array($item->getName(), $item);
fputcsv($a, $array, ',','"');
} else {
Csv($item, $a);
}
}
}
?>
这是xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<JPK xmlns:tns="http://crd.gov.pl/wzor/2021/12/27/11149/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2021/06/08/eD/DefinicjeTypy/" xsi:schemaLocation="http://crd.gov.pl/wzor/2021/12/27/11149/schemat.xsd">
<Naglowek>
<KodFormularza kodSystemowy="JPK_V7K (2)" wersjaSchemy="1-0E">JPK_VAT</KodFormularza>
<WariantFormularza>2</WariantFormularza>
<DataWytworzeniaJPK>2022-01-01T00:00:00Z</DataWytworzeniaJPK>
<NazwaSystemu>a</NazwaSystemu>
<CelZlozenia poz="P_7">2</CelZlozenia>
<KodUrzedu>1430</KodUrzedu>
<Rok>2022</Rok>
<Miesiac>1</Miesiac>
</Naglowek>
<Podmiot1 rola="Podatnik">
<OsobaFizyczna>
<etd:NIP>1010000000</etd:NIP>
<etd:ImiePierwsze>a</etd:ImiePierwsze>
<etd:Nazwisko>a</etd:Nazwisko>
<etd:DataUrodzenia>1900-01-01</etd:DataUrodzenia>
<Email>!@"</Email>
<Telefon>a</Telefon>
</OsobaFizyczna>
</Podmiot1>
<Ewidencja>
<SprzedazWiersz>
<LpSprzedazy>1</LpSprzedazy>
<KodKrajuNadaniaTIN>BB</KodKrajuNadaniaTIN>
<NrKontrahenta>a</NrKontrahenta>
<NazwaKontrahenta>a</NazwaKontrahenta>
<DowodSprzedazy>a</DowodSprzedazy>
<DataWystawienia>2006-01-01</DataWystawienia>
<DataSprzedazy>2006-01-01</DataSprzedazy>
<TypDokumentu>WEW</TypDokumentu>
<GTU_01>1</GTU_01>
<WSTO_EE>1</WSTO_EE>
<IED>1</IED>
<TP>1</TP>
<TT_WNT>1</TT_WNT>
<TT_D>1</TT_D>
<MR_T>1</MR_T>
<MR_UZ>1</MR_UZ>
<I_42>1</I_42>
<I_63>1</I_63>
<B_SPV>1</B_SPV>
<B_SPV_DOSTAWA>1</B_SPV_DOSTAWA>
<B_MPV_PROWIZJA>1</B_MPV_PROWIZJA>
<KorektaPodstawyOpodt>1</KorektaPodstawyOpodt>
<TerminPlatnosci>2016-01-01</TerminPlatnosci>
<K_10>0</K_10>
<SprzedazVAT_Marza>0</SprzedazVAT_Marza>
</SprzedazWiersz>
<SprzedazWiersz>
<LpSprzedazy>2</LpSprzedazy>
<KodKrajuNadaniaTIN>CC</KodKrajuNadaniaTIN>
<NrKontrahenta>b</NrKontrahenta>
<NazwaKontrahenta>b</NazwaKontrahenta>
<DowodSprzedazy>b</DowodSprzedazy>
<DataWystawienia>2006-01-01</DataWystawienia>
<DataSprzedazy>2006-01-01</DataSprzedazy>
<TypDokumentu>WEW</TypDokumentu>
<GTU_01>1</GTU_01>
<WSTO_EE>1</WSTO_EE>
<IED>1</IED>
<TP>1</TP>
<TT_WNT>1</TT_WNT>
<TT_D>1</TT_D>
<MR_T>1</MR_T>
<MR_UZ>1</MR_UZ>
<I_42>1</I_42>
<I_63>1</I_63>
<B_SPV>1</B_SPV>
<B_SPV_DOSTAWA>1</B_SPV_DOSTAWA>
<B_MPV_PROWIZJA>1</B_MPV_PROWIZJA>
<KorektaPodstawyOpodt>1</KorektaPodstawyOpodt>
<TerminPlatnosci>2016-01-01</TerminPlatnosci>
<K_10>0</K_10>
<SprzedazVAT_Marza>0</SprzedazVAT_Marza>
</SprzedazWiersz>
<SprzedazWiersz>
<LpSprzedazy>3</LpSprzedazy>
<KodKrajuNadaniaTIN>DD</KodKrajuNadaniaTIN>
<NrKontrahenta>c</NrKontrahenta>
<NazwaKontrahenta>c</NazwaKontrahenta>
<DowodSprzedazy>c</DowodSprzedazy>
<DataWystawienia>2006-01-01</DataWystawienia>
<DataSprzedazy>2006-01-01</DataSprzedazy>
<TypDokumentu>WEW</TypDokumentu>
<GTU_01>1</GTU_01>
<WSTO_EE>1</WSTO_EE>
<IED>1</IED>
<TP>1</TP>
<TT_WNT>1</TT_WNT>
<TT_D>1</TT_D>
<MR_T>1</MR_T>
<MR_UZ>1</MR_UZ>
<I_42>1</I_42>
<I_63>1</I_63>
<B_SPV>1</B_SPV>
<B_SPV_DOSTAWA>1</B_SPV_DOSTAWA>
<B_MPV_PROWIZJA>1</B_MPV_PROWIZJA>
<KorektaPodstawyOpodt>1</KorektaPodstawyOpodt>
<TerminPlatnosci>2016-01-01</TerminPlatnosci>
<K_10>0</K_10>
<SprzedazVAT_Marza>0</SprzedazVAT_Marza>
</SprzedazWiersz>
<SprzedazWiersz>
<LpSprzedazy>4</LpSprzedazy>
<KodKrajuNadaniaTIN>EE</KodKrajuNadaniaTIN>
<NrKontrahenta>d</NrKontrahenta>
<NazwaKontrahenta>d</NazwaKontrahenta>
<DowodSprzedazy>d</DowodSprzedazy>
<DataWystawienia>2006-01-01</DataWystawienia>
<DataSprzedazy>2006-01-01</DataSprzedazy>
<TypDokumentu>WEW</TypDokumentu>
<GTU_01>1</GTU_01>
<WSTO_EE>1</WSTO_EE>
<IED>1</IED>
<TP>1</TP>
<TT_WNT>1</TT_WNT>
<TT_D>1</TT_D>
<MR_T>1</MR_T>
<MR_UZ>1</MR_UZ>
<I_42>1</I_42>
<I_63>1</I_63>
<B_SPV>1</B_SPV>
<B_SPV_DOSTAWA>1</B_SPV_DOSTAWA>
<B_MPV_PROWIZJA>1</B_MPV_PROWIZJA>
<KorektaPodstawyOpodt>1</KorektaPodstawyOpodt>
<TerminPlatnosci>2016-01-01</TerminPlatnosci>
<K_10>0</K_10>
<SprzedazVAT_Marza>0</SprzedazVAT_Marza>
</SprzedazWiersz>
<SprzedazCtrl>
<LiczbaWierszySprzedazy>0</LiczbaWierszySprzedazy>
<PodatekNalezny>0</PodatekNalezny>
</SprzedazCtrl>
</Ewidencja>
</JPK>
并且这是期望的CSV输出
1
[row1]LpSprzedazy;KodKrajuNadaniaTIN;NrKontrahenta;NazwaKontrahenta;DowodSprzedazy;DataWystawienia;DataSprzedazy;TypDokumentu;GTU_01;WSTO_EE;IED;TP;TT_WNT;TT_D;MR_T;MR_UZ;I_42;I_63;B_SPV;B_SPV_DOSTAWA;B_MPV_PROWIZJA;KorektaPodstawyOpodt;TerminPlatnosci;K_10;SprzedazVAT_Marza
[row2]1;BB;a;a;a;1.01.2006;1.01.2006;WEW;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1.01.2016;0;0
[row3]2;CC;b;b;b;1.01.2006;1.01.2006;WEW;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1.01.2016;0;0
[row4]3;DD;c;c;c;1.01.2006;1.01.2006;WEW;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1.01.2016;0;0
[row5]4;EE;d;d;d;1.01.2006;1.01.2006;WEW;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1.01.2016;0;0
这就是我得到的
[row1]KodFormularza;JPK_VAT
[row2]WariantFormularza;2
[row3]DataWytworzeniaJPK;2022-01-01T00:00:00Z
[row4]NazwaSystemu;a
[row5]CelZlozenia;2
[row6]KodUrzedu;1430
[row7]Rok;2022
[row8]Miesiac;1
[row9]Email;"!@"""
[row10]Telefon;a
[row11]LpSprzedazy;2
[row12]KodKrajuNadaniaTIN;CC
[row13]NrKontrahenta;b
[row14]NazwaKontrahenta;b
[row15]DowodSprzedazy;b
[row16]DataWystawienia;2006-01-01
[row17]DataSprzedazy;2006-01-01
[row18]TypDokumentu;WEW
[row19]GTU_01;1
[row20]WSTO_EE;1
[row21]IED;1
[row22]TP;1
[row23]TT_WNT;1
[row24]TT_D;1
[row25]MR_T;1
[row26]MR_UZ;1
[row27]I_42;1
[row28]I_63;1
[row29]B_SPV;1
[row30]B_SPV_DOSTAWA;1
[row31]B_MPV_PROWIZJA;1
[row32]KorektaPodstawyOpodt;1
[row33]TerminPlatnosci;2016-01-01
[row34]K_10;0
[row35]SprzedazVAT_Marza;0
[row36]LpSprzedazy;3
[row37]KodKrajuNadaniaTIN;DD
[row38]NrKontrahenta;c
[row39]NazwaKontrahenta;c
[row40]DowodSprzedazy;c
[row41]DataWystawienia;2006-01-01
[row42]DataSprzedazy;2006-01-01
[row43]TypDokumentu;WEW
[row44]GTU_01;1
[row45]WSTO_EE;1
[row46]IED;1
[row47]TP;1
[row48]TT_WNT;1
[row49]TT_D;1
[row50]MR_T;1
[row51]MR_UZ;1
[row52]I_42;1
[row53]I_63;1
[row54]B_SPV;1
[row55]B_SPV_DOSTAWA;1
[row56]B_MPV_PROWIZJA;1
[row57]KorektaPodstawyOpodt;1
[row58]TerminPlatnosci;2016-01-01
[row59]K_10;0
[row60]SprzedazVAT_Marza;0
[row61]LpSprzedazy;4
[row62]KodKrajuNadaniaTIN;EE
[row63]NrKontrahenta;d
[row64]NazwaKontrahenta;d
[row65]DowodSprzedazy;d
[row66]DataWystawienia;2006-01-01
[row67]DataSprzedazy;2006-01-01
[row68]TypDokumentu;WEW
[row69]GTU_01;1
[row70]WSTO_EE;1
[row71]IED;1
[row72]TP;1
[row73]TT_WNT;1
[row74]TT_D;1
[row75]MR_T;1
[row76]MR_UZ;1
[row77]I_42;1
[row78]I_63;1
[row79]B_SPV;1
[row80]B_SPV_DOSTAWA;1
[row81]B_MPV_PROWIZJA;1
[row82]KorektaPodstawyOpodt;1
[row83]TerminPlatnosci;2016-01-01
[row84]K_10;0
[row85]SprzedazVAT_Marza;0
[row86]LiczbaWierszySprzedazy;0
[row87]PodatekNalezny;0
1条答案
按热度按时间9o685dep1#
由于您要处理的是xml,因此最好使用xpath。因此,我将把您的
Csv()
函数修改为如下形式:而且它应该会让你得到预期的输出。