Атрибут xmlns
- это больше, чем обычный атрибут.Это атрибут пространства имен , который используется для уникальной квалификации элементов и атрибутов.
Элементы PersonList
, List
и Person
"наследуют" это пространство имен.Ваш XPath не совпадает, потому что вы выбираете элементы в «пространстве имен».Чтобы обратиться к элементам, связанным с пространством имен в XPath 1.0, вы должны определить префикс пространства имен и использовать его в своем выражении XPath.
Вы можете сделать свой XPath более универсальным и просто сопоставлять его с * 1012.*, чтобы он соответствовал элементам независимо от их пространства имен:
//*[local-name()='PersonList']/*[local-name()='List']/*[local-name()='Person']