所以我有这个包含更改属性信息的 XML 文件,如下所示:

<xf:Data xmlns:xf="uri:com.data/Data">
 <xf:ElementId>XF42591459</xf:ElementId>
 <xf:ElementDescription>Part number 42591459</xf:ElementDescription>
 <xf:StockData>
  <xf:Available>YES</xf:Available>
  <xf:StockCount xmlns:diff="uri:com.data/diff" diff:oldcount="200">197</xf:StockCount>
 </xf:StockData>
</xf:Data>

我需要找出 oldcount 的值,但我很困惑,因为子元素中的 xmlns 定义让我感到困惑。

我试过使用 XPath /xf:Data/xf:StockData/xf:StockCount/@diff:oldcount但它似乎不起作用。 如果xmlns:diff="uri:com.data/diff"将成为<xf:Data...>一部分,它似乎工作得很好。

#1楼 票数:2 已采纳

表达式/xf:Data/xf:StockData/xf:StockCount/@diff:oldcount将起作用,但/xf:Data/xf:StockData/xf:StockCount/@diff:oldcount是您告诉 XPath 处理器“xf”和“diff”前缀所指的名称空间。 执行此操作的方式因 XPath 处理器而异。 (您不必使用与源文档相同的前缀,任何映射到正确 URI 的前缀都可以)

  ask by PanStern translate from so

未解决问题?本站智能推荐:

1回复

使用xpath对包含默认命名空间的子节点进行XML解析

我需要访问包含默认命名空间的子节点用于访问包含使用的命名空间的根节点IFX 但现在我需要访问<severity>和<SPName>以及<CardEmbossNum>
4回复

XML命名空间和XPath

我有一个应用程序,必须根据XPath加载XML文档和输出节点。 假设我从这样的文档开始: 使用XPath //bbb 到目前为止一切都很好。 并选择doc.SelectNodes("//bbb"); 返回所需节点的列表。 然后有人上传一个文件,其中包含一个节点,如<m
3回复

带命名空间的XML的XPath

我有一个带有各种命名空间的xml,我想使用它来查询.SelectNodes(string xPath) 我注意到的问题是,只要我拥有所有这些名称空间,xPath查询就不会返回任何内容。 无论如何告诉XmlDocument.SelectNodes忽略这些命名空间,只是给我正确的元素(我查
1回复

xpath和xml命名空间

我如何使用xpath访问xml中的URL字符串? 谢谢。
1回复

如何使用XPath根据条件获取包含默认命名空间的XML中的特定元素

我有一个 XML 文档,其中包含我的应用程序的执行信息。 我想根据给定的条件获取特定的 xml 元素。 例如: XML 文件:<feed xmlns='http://www.w3.org/2005/Atom' xmlns:sop='http://www.hp.com/dma/api/sop'
1回复

元素的Xpath与命名空间

我需要知道XDocument中XElement的xpath,使用命名空间,因为我需要它来在XDocument中进行稍后的查找。 我目前正在使用从获取XPath到XElement的示例? 它适用于没有命名空间的文档。 但是没有带有命名空间的xml文档,并且支持它的工具不能给我正确的路径。
2回复

使用XPath选择XML节点时如何忽略命名空间

我必须解析一个如下所示的XML文档: 问题是名称空间“http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd”有时可能会有所不同。 我想完全忽略它,只是从标记MessagePayload下游获取我的数据。 我到目前为止使用的代码
4回复

为什么命名空间限定的节点没有XPath语法?

XML文档中的某些节点具有名称空间,使用已定义的前缀指定。 可以在XPath 1.0中指定local-name() ,因此忽略名称空间。 但是,我想让XPath的编写者使用其完整的名称空间限定名称作为标识符来查找节点。 建议的方法是在调用代码中添加名称空间声明(在我的例子中是Java