Подтвердить что ты не робот

Можно ли игнорировать пространства имен в С# при использовании xPath?

Мне может быть предоставлен любой из следующих xml:

<?xml version="1.0" encoding="UTF-8"?>
<dc:video xmlns:dc="http://purl.org/dc/elements/1.1/">
  <dc:title>
    A vid with Pete
  </dc:title>
  <dc:description>
  Petes vid
  </dc:description>
  <dc:contributor>
    Pete
  </dc:contributor>
  <dc:subject>
    Cat 2
  </dc:subject>
</dc:video>

Или:

<?xml version="1.0" encoding="UTF-8"?>
<video>
  <title>
    A vid with Pete
  <title>
  <description>
  Petes vid
  <description>
  <contributor>
    Pete
  <contributor>
  <subject>
    Cat 2
  <subject>
</video>

Я пытаюсь получить доступ к элементу:

string title = xmlDocFromOneLan.SelectSingleNode(@"/video/title").InnerXml;

Но с XML-документом 1 он не работает из-за пространства имен.

Есть ли способ в С# игнорировать пространство имен с помощью xpath? Я просто хочу выбрать node, я действительно не забочусь о пространстве имен. (пространство имен может быть DC DN или DCN и т.д.).

"/видео"

будет читать:

<video></video>
or
<dc:video></video>
or
<dcn:video></video>
4b9b3361

Ответ 1

С XPath 1.0 все, что вы можете сделать, это /*[local-name() = 'video']/*[local-name() = 'title']. С XPath 2.0 вы можете использовать подстановочный знак /*:video/*:title.