2013-08-10 5 views
1

У меня есть документ XML с объявлениемИзвлечь значение объявления пространства имен с помощью XPath

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04 file://BE-FILE01/tverschu$/SR%20(Standards%20Release)/SR2013/ISO/Payments%20Initiation/SR2013_MX_Schemas_PaymentsInitiation/pain.008.001.04.xsd"> 

Эффективно я хочу использовать XPath (1.0) в пределах XSLT trasnfromation, чтобы получить на содержание либо xmlns атрибут пространства имен или xsi:schemaLocation attrubite, поэтому я могу разбить/воссоздать имя xsd-файла.

с помощью:

/*/namespace::* 

дает мне

HTTP> // wwww.w3.org/XML/1998/Namespace

, но все, что я стараюсь я не похоже, могут получить фактическое содержание этих атрибутов, любые идеи?

ответ

0

Вы должны уметь запрашивать @schemaLocation используя /*/@xsi:schemaLocation.

xmlns «атрибуты» - это объявления пространств имен, а не атрибуты. Вы не можете запрашивать их как таковые. /*/namespace::* отлично работает для меня. Есть /* с запросом на тег <Document/>? Пространство имен xml всегда можно установить, вы проверили все вернули значения?

Смежные вопросы