Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for multi-level xml tags (lvl 3+) #32

Merged
merged 6 commits into from
Apr 12, 2022
Merged

Conversation

BigOHenry
Copy link
Contributor

@BigOHenry BigOHenry commented Apr 1, 2022

EXAMPLE XML:

<StepProcess>
		<StepName>FKZ</StepName>
		<Result>NEAKCEPTOVANO</Result>
		<ErrorsProcess>
			<ErrorItem>
				<DataArea>PERF30_11</DataArea>
				<DynPar>T0019:1,R0109:315700MJRNJSVB95U852,R0106:K#U\FB*Hr.`022Fi_Z::CzvCa,R0108:,R0107:,T0025:X</DynPar>
				<StatusItem>ODMITNUTO</StatusItem>
				<Error>
					<Code>SDAT_2059</Code>
					<Severity>Zavazna</Severity>
					<Text>Je-li záznam zaslán s parametrem T0025=X, musí existovat platný záznam se stejným číselníkovým klíčem.</Text>
					<Localization>
						<DataAreaCode>PERF30_11</DataAreaCode>
						<Detail>
							<DynPar>T0019:1,R0109:315700MJRNJSVB95U852,R0106:K#U\FB*Hr.`022Fi_Z::CzvCa,R0108:,R0107:,T0025:X</DynPar>
						</Detail>
					</Localization>
				</Error>
			</ErrorItem>
			<ErrorItem>
				<DataArea>PERF30_11</DataArea>
				<DynPar>T0019:2,R0109:IYKCAVNFR8QGF00HV840,R0106:Q-QY?6W'G?t(X!Q6kG)%h58uo'dW,R0108:,R0107:,T0025:X</DynPar>
				<StatusItem>ODMITNUTO</StatusItem>
				<Error>
					<Code>SDAT_2059</Code>
					<Severity>Zavazna</Severity>
					<Text>Je-li záznam zaslán s parametrem T0025=X, musí existovat platný záznam se stejným číselníkovým klíčem.</Text>
					<Localization>
						<DataAreaCode>PERF30_11</DataAreaCode>
						<Detail>
							<DynPar>T0019:2,R0109:IYKCAVNFR8QGF00HV840,R0106:Q-QY?6W'G?t(X!Q6kG)%h58uo'dW,R0108:,R0107:,T0025:X</DynPar>
						</Detail>
					</Localization>
				</Error>
			</ErrorItem>
		</ErrorsProcess>
	</StepProcess>
<StepProcess>

Without this fix:
Case 1:

  • parseString: 'ProcessErrors[ErrorItem{DataArea,DynPar,StatusItem,Error{Code,Severity,Text}}]
  • result: Working, everything is parsed to array

Case 2:

  • parseString: 'ProcessErrors[ErrorItem{DataArea,DynPar,StatusItem,Error{Code,Severity,Text,Localization{DataAreaCode,Detail.DynPar}}}]

  • result: NOT ok, whole part Error skipped

'errors_trn' => array (1)
   |  0 => array (1)
   |  |  'Error{Code,Severity,Text,Localization{DataAreaCode,Detail.DynPar}}}' => array (2)
   |  |  |  0 => array (3)
   |  |  |  |  'DataArea' => 'PERF30_11'
   |  |  |  |  'DynPar' => 'T0019:1,R0109:315700MJRNJSVB95U852,R0106:K#U\FB*Hr.`022Fi_Z::CzvCa,R0108:,R0107:,T0025:X'
   |  |  |  |  'StatusItem' => 'ODMITNUTO'
   |  |  |  1 => array (3)
   |  |  |  |  'DataArea' => 'PERF30_11'
   |  |  |  |  'DynPar' => 'T0019:2,R0109:IYKCAVNFR8QGF00HV840,R0106:Q-QY?6W'G?t(X!Q6kG)%h58uo'dW,R0108:,R0107:,T0025:X'
   |  |  |  |  'StatusItem' => 'ODMITNUTO'

With this fix, case 2 is now working

@coveralls
Copy link

coveralls commented Apr 1, 2022

Coverage Status

Coverage increased (+0.02%) to 95.062% when pulling dc8ffc1 on BigOHenry:master into cac6349 on laravie:master.

@crynobone
Copy link
Member

Can you submit tests covering this usage?

@BigOHenry
Copy link
Contributor Author

Now should be ok

@BigOHenry
Copy link
Contributor Author

finally :)

@BigOHenry
Copy link
Contributor Author

When you have a plan the merge? Thank you

@heavensloop
Copy link

heavensloop commented Apr 11, 2022

I had to abandon this package and write my own parser because this feature hasn't been merged

@BigOHenry
Copy link
Contributor Author

Hey, i dont wanna be rude, but is there any motivation to accept this pull request?

@crynobone
Copy link
Member

I am still fully occupied with my day job at the moment.

@crynobone crynobone merged commit 5368a00 into laravie:master Apr 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants