For wget
the option post-file
sends the contents of the named file. In your case you seem to be passing directly the data so you probably want --post-data
.
The way you are doing it right now, bash
gets the output from sed
and wget
gets something like:
wget ... --post-file <?xml stuff stuff stuff
So wget
goes looking for a file called <?xml
instead of using that text verbatim.