【问题标题】:Is it possible to ignore namespaces in c# when using xPath?使用 xPath 时是否可以忽略 c# 中的命名空间?
【发布时间】:2010-11-30 12:05:46
【问题描述】:

我可以得到以下任一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,由于命名空间,它不起作用。

在 C# 中有没有办法使用 xpath 忽略命名空间?我只是想选择我真的不关心命名空间的节点。 (命名空间可以是 DC DN 或 DCN 等)。

“/视频”

应该是:

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

【问题讨论】:

标签: xml xpath xsd xml-validation


【解决方案1】:

使用 XPath 1.0,您所能做的就是/*[local-name() = 'video']/*[local-name() = 'title']。在 XPath 2.0 中,您可以使用通配符 /*:video/*:title

【讨论】:

猜你喜欢
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多