A solução usa xmstarlet ferramenta:
xmlstarlet sel -t -v "/p/text()[2]" -n file | sed 's/.*"\(.*\)"//'
A saída:
Massive demographic change has political consequences.
sel option
sel (or select) - Select data or query XML document(s) (XPATH, etc)
-t --template opções
-v option
-v or --value-of - print value of XPATH expression
/p/text()[2] - Expressão XPath, seleciona o segundo nó de texto do parágrafo (o primeiro nó de texto é . )
sed 's/.*"\(.*\)"//' - para extrair a mensagem entre aspas duplas