Для XML без пространства имен я могу получить текстовое содержимое элемента через xpath:
$ xmllint --xpath '//hash/text()' test.xml
0x63cCEF733a093E5Bd773b41C96D3eCE361464944
Но поскольку мой XML-файл имеет пространство имен в корневом элементе, я должен сделать это вместо этого:
$ xmllint --shell test.xml
/ > setns h=http://my.domain/namespace
/ > xpath //h:hash/text()
Object is a Node Set :
Set contains 1 nodes:
1 TEXT
content=0x63cCEF733a093E5Bd773b41C96D3eCE3614649...
Как видите, последний бит значения 44
обрезается и заменяется на ...
(к моему удивлению, вывод становится длиннее после обрезки строки, поскольку ...
имеет 3 символа).
Есть ли способ получить полнотекстовое содержимое без удаления пространства имен? Спасибо.
P.S. префикс пространства имен в файлах XML может быть разным, я не могу предположить, что элемент <h:hash>
существует локально.