事象
XMLを利用してcurlコマンドで情報を以下のように送信する際に
# curl -X POST -H "Content-type: text/xml" ...
XML内に"<"や">"が入っていると以下のように失敗する。
400 XML Parse Failed
環境情報
# curl --version curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2u zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
原因/解決策
XMLではタグに相当する箇所を以下のような値でエスケープして送る必要がある。
< → < > → >
よって"<"の部分を"<"として送付すると"<"として送付可能になる。
以下、補足です。
補足
以下記事のようにはてなブログではAPIを通じて文章を投稿できますが
タグ付きの文章をそのまま送ろうとするとXMLのタグとして読み込まれてエラーになります。
< → < > → > & → & ' → ' " → " (スペース) →  
よく使う変換は上記ですのでご参考ください。