Revision: 62033
Updated Code
at January 29, 2013 09:47 by iroybot
Updated Code
# command line/exec(),etc. or use the php functions to tidy up your document tidy -indent -utf8 -xml -wrap 1000 input.xml > output.xml <?php /** * Replaces invalid: * <element> * <![CDATA[whatever content]]> * </element> * * With well-formed: * <element><![CDATA[whatever content]]></element> */ $out = preg_replace('~>[\s\t\w\n\r]+<\!\[CDATA\[~', '><![CDATA[', file_get_contents("output.xml")); $out = preg_replace('~]]>\s+<~', ']]><', $out); file_put_contents("final.xml", $out); ?>
Revision: 62032
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 29, 2013 09:43 by iroybot
Initial Code
# command line/exec(),etc. or use the php functions to tidy up your document tidy -indent -utf8 -xml -wrap 1000 input.xml > output.xml <?php $out = preg_replace('~>[\s\t\w\n\r]+<\!\[CDATA\[~', '><![CDATA[', file_get_contents("output.xml")); $out = preg_replace('~]]>\s+<~', ']]><', $out); file_put_contents("final.xml", $out); ?>
Initial URL
Initial Description
For some reason tidy inserts new lines before/after <![CDATA[ content in XML files. Since I like the benefits of a reformatted, readable XML... ... i run tidy first, then remove the spaces before/after the CDATA block:
Initial Title
Fix CDATA blocks in XML files after reformatting with Tidy
Initial Tags
xml
Initial Language
PHP