В документе отсутствует декларация пространства имен, и Нокогири не доволен этим. Если вы проверите errors
метод для вашего doc
, вы увидите что-то вроде:
puts doc.errors
Namespace prefix w on document is not defined
Namespace prefix w on body is not defined
Namespace prefix w for rsidR on p is not defined
Namespace prefix w for rsidRPr on p is not defined
Namespace prefix w for rsidRDefault on p is not defined
Namespace prefix pcut for cut on p is not defined
Namespace prefix w on p is not defined
Namespace prefix w on pPr is not defined
Namespace prefix w for val on jc is not defined
Namespace prefix w on jc is not defined
Opening and ending tag mismatch: p line 3 and body
Opening and ending tag mismatch: body line 2 and document
Premature end of data in tag document line 1
Используя CSS-средства доступа Nokogiri вместо XPath, вы можете обойти проблемы с пространством имен:
puts doc.at('jc')['val']
выведет:
center
Если вам нужно выполнить итерацию по нескольким jc
узлам, используйте search
или один из его псевдонимов или методов, подобных действиям, аналогично тому, что вы делали раньше.