Команда оболочки xmath в xmllint не дает полного результата - PullRequest
0 голосов
/ 29 апреля 2019

Для 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> существует локально.

...