Поиск встроенного пространства имен URI - PullRequest
2 голосов
/ 14 декабря 2009

Учитывая следующее:
Вы заметите, что в этом примере xml встроен узел Organization с собственным пространством имен, объявленным с помощью xmlns = ""

Это объявляется так, а не с использованием префикса. Есть ли способ найти все пространства имен, объявленные в документе XML, используя xpath?

Я пробовал несколько вариантов, к сожалению, xmlns не обрабатывается как любые другие атрибуты документа (по понятным причинам), и я не могу найти способ вывести их с помощью xpath.

// @ * не включает их, например.

Мне нужен список всех атрибутов xmlns в документе.

<rss version="2.0" xmlns:a10="http://www.w3.org/2005/Atom">
  <channel xmlns:media="http://search.yahoo.com/mrss">
    <title>Search Results Title</title>
    <link>http://acme.co.za/searchResults</link>
    <description>Search Results Descrption</description>
    <item>
      <guid isPermaLink="false">uuid:169d3229-3b99-4647-9791-492bbbf4c419/PGS0900.PDF</guid>
      <link>link</link>
      <title>Title</title>
      <description>This page...</description>
      <media:thumbnail url="..." width="100" height="100"></media:thumbnail>
      <Organisation xmlns="http://acme.co.za/MYNAMESPACE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Name>Volkswagen</Name>
        <Business>Kraft-durch-Freude-Wagen</Business>
        <Type>Public</Type>
        <RegistrationNumber>5908213224080</RegistrationNumber>
      </Organisation>
    </item>
  </channel>
</rss>

Ответы [ 2 ]

1 голос
/ 14 декабря 2009

Вы должны быть в состоянии сделать что-то вроде //namespace:*

Однако, если это сработает, он предоставит вам список узлов пространства имен в порядке документа с большим количеством дубликатов. Возможно, вам было бы лучше просто пройти через документ через DOM, накапливая набор (без дублирования) пространств имен. Обратите внимание, что вам нужно проверять атрибуты и элементы.

0 голосов
/ 16 декабря 2009

Правильный синтаксис // Пространство имен-URI ()

Это дает вам все пространства имен в документе.

С уважением Крейг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...