I am having a problem with some XML print files where the source system omits to convert some characters to their XML syntax equivalent (e.g. & is not converted to &am
If you just need to check validity(correctness) of any xml document using xmllint, here is one more way.
if xmllint --noout /tmp/test.xml > /dev/null 2>&1;
then
echo "correct"
else
echo "incorrect"
fi
xmllint --noout your_test_file.xml
Check for return code of this command. See documentation. Value of 1
is returned when basic parsing errors are met. E.g.:
echo $?
xmllint --valid --encode utf-8 TEST.xml
will validate and output TEST.xml in utf-8
cat TEST.xml
<xml version="1.0" encoding="utf-8"?>
<!DOCTYPE JM SYSTEM "mydtd">
<JM> . . . </JM>