Hello all,
I hope everyone is well. Thanks in advance for any assistance you can give me on this. I've got an XML file of the KJV Bible. I can parse it using SimpleXML and have working code. My challenge is this. Inside the XML file, certain verses (A TON) have HTML code in the body of the verses. See below for XML snippet & output snippet.
Snippet from XML File (notice the <i> tags & <span class="j"> elements within the verses)
<chapter num="17">
<verse num="1">And after six days Jesus taketh Peter, James, and John his brother, and bringeth them up into an high mountain apart,</verse>
<verse num="2">And was transfigured before them: and his face did shine as the sun, and his raiment was white as the light.</verse>
<verse num="3">And, behold, there appeared unto them Moses and Elias talking with him.</verse>
<verse num="4">Then answered Peter, and said unto Jesus, Lord, it is good for us to be here: if thou wilt, let us make here three tabernacles; one for thee, and one for Moses, and one for Elias.</verse>
<verse num="5">While he yet spake, behold, a bright cloud overshadowed them: and behold a voice out of the cloud, which said, This is my beloved Son, in whom I am well pleased; hear ye him.</verse>
<verse num="6">And when the disciples heard <i>it,</i> they fell on their face, and were sore afraid.</verse>
<verse num="7">And Jesus came and touched them, and said, <span class="j">Arise, and be not afraid. </span></verse>
<verse num="8">And when they had lifted up their eyes, they saw no man, save Jesus only.</verse>
<verse num="9">And as they came down from the mountain, Jesus charged them, saying, <span class="j">Tell the vision to no man, until the Son of man be risen again from the dead. </span></verse>
<verse num="10">And his disciples asked him, saying, Why then say the scribes that Elias must first come?</verse>
<verse num="11">And Jesus answered and said unto them, <span class="j">Elias truly shall first come, and restore all things. </span></verse>
<verse num="12"><span class="j">But I say unto you, That Elias is come already, and they knew him not, but have done unto him whatsoever they listed. Likewise shall also the Son of man suffer of them. </span></verse>
<verse num="13">Then the disciples understood that he spake unto them of John the Baptist.</verse>
<verse num="14">And when they were come to the multitude, there came to him a <i>certain</i> man, kneeling down to him, and saying,</verse>
<verse num="15">Lord, have mercy on my son: for he is lunatick, and sore vexed: for ofttimes he falleth into the fire, and oft into the water.</verse>
<verse num="16">And I brought him to thy disciples, and they could not cure him.</verse>
<verse num="17">Then Jesus answered and said, <span class="j">O faithless and perverse generation, how long shall I be with you? how long shall I suffer you? bring him hither to me. </span></verse>
As you might have guessed, <span class="j"> & <i> turn into attributes or disappear within Simple XML and they break badly leaving parts of the verses missing or broken altogether. Is there a way to prevent this & get the code raw between the verse tags? I'm aware of CData, but this file is 33000 lines and manually is out the door & I'm not sure if regex would work or not. Any advice?
Here is the output for the above section... Code used is <?php echo '<pre>'; print_r( simplexml_load_file( $fileName ) ); ?>. I added a few comments to draw attention to what is missing.
[verse] => Array
(
[0] => And after six days Jesus taketh Peter, James, and John his brother, and bringeth them up into an high mountain apart,
[1] => And was transfigured before them: and his face did shine as the sun, and his raiment was white as the light.
[2] => And, behold, there appeared unto them Moses and Elias talking with him.
[3] => Then answered Peter, and said unto Jesus, Lord, it is good for us to be here: if thou wilt, let us make here three tabernacles; one for thee, and one for Moses, and one for Elias.
[4] => While he yet spake, behold, a bright cloud overshadowed them: and behold a voice out of the cloud, which said, This is my beloved Son, in whom I am well pleased; hear ye him.
[5] => And when the disciples heard they fell on their face, and were sore afraid. // missing it after heard
[6] => And Jesus came and touched them, and said, // Missing a chunk here
[7] => And when they had lifted up their eyes, they saw no man, save Jesus only.
[8] => And as they came down from the mountain, Jesus charged them, saying, // missing a chunk here
[9] => And his disciples asked him, saying, Why then say the scribes that Elias must first come?
[10] => And Jesus answered and said unto them,
[11] => SimpleXMLElement Object // the whole thing line became an att
(
[@attributes] => Array
(
[num] => 12
)
[span] => But I say unto you, That Elias is come already, and they knew him not, but have done unto him whatsoever they listed. Likewise shall also the Son of man suffer of them.
)
[12] => Then the disciples understood that he spake unto them of John the Baptist.
[13] => And when they were come to the multitude, there came to him a man, kneeling down to him, and saying,
[14] => Lord, have mercy on my son: for he is lunatick, and sore vexed: for ofttimes he falleth into the fire, and oft into the water.
[15] => And I brought him to thy disciples, and they could not cure him.
[16] => Then Jesus answered and said,
Thanks for any help you can offer.