I have a large XML file I would like to strip all the tags and leave node values only. I want each node value in a separate line. How can I do that?
Can I use a free software to do it or use a PHP or ASP.NET Code. I looked at XSLT option also. It is probably too much for RegEX. I explored PHP options looked at simplexml_load_file()
, strip_tags()
, get_file_contents()
but failed.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- a comment -->
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<address>
<city>Melbourne </city>
<zip>01803 </zip>
</address>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
Edit: This is what I tried, among other things.
<?php
$xml = simplexml_load_file('myxml.xml');
echo strip_tags($xml);
?>
This should do ya:
<?php
$xml = file_get_contents('myxml.xml');
$xml = nl2br($xml);
echo strip_tags($xml,"<br>");
?>
The reason you were missing line breaks was because in XML, it is stored as plaintext linebreaks \n
whereas when displaying as HTML you must have explicit <br>
linebreaks. Because of this the good PHP folks made a handy function called nl2br()
to do this for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With