当前位置: 首页 > 知识库问答 >
问题:

使用带有节点属性的XPath

轩辕鸿
2023-03-14

我已经掌握了XPath的基本知识,但在确定以下内容是否可以在使用XPath的C代码中实现时遇到了一些困难(或者我是否需要将其转移到其他代码中,正如我目前所做的那样)。

我有一个XML文档,它由以下结构组成:

 <xml>
     <parameters>
        <setParameter name="SomeName" value="SomeValue" />
     </parameters>
 </xml>

其中有多个设置参数值。现在我需要做的只是检索那些包含name属性某些值的setParameter节点。我可能有这些值的可能匹配列表,但它们不会是完全匹配,它们将是节点的name属性必须包含的值。

例如,在上面的结构代码中,如果我有一个要匹配的值“men”,它将与节点一起返回,因为“men”包含在“SomeName”中

做这件事的速记法是什么?

共有3个答案

曹新觉
2023-03-14

根据您的XPath版本,这可能有效也可能无效:

//setParameter[matches(@name,"men", "i") or matches(@name,"else", "i")]

这应该匹配<代码>

试着告诉我结果

宋稳
2023-03-14

我认为没有办法将属性与通配符匹配,但您可以使用包含方法,例如:

//parameters/setParameter[contains(@name, "stringexample")]
赫连飞沉
2023-03-14

为所有名为setParameter的元素检索名为value的所有属性的值,这些元素具有name属性的值,其中包含men

//setParameter[contains(@name, 'men')]/@value
  • //设置参数

检索名为setParameter的所有节点(可以替换为xml/parameters/setParameter)

  • [...]

检查当前节点选择的属性

  • 包含(@name,'men')

如果name属性的值包含men,则返回true

  • /@值

检索属性的值。

 类似资料:
  • 我想用XStream将一个对象序列化为这种形式的XML。 在StackOverflow中已经有一个解决方案:XStream:node with attributes and text node?但它对我不起作用,因为我只能使用XStream1.3.1。

  • 问题内容: 我想使用XStream将对象序列化为这种形式的XML。 节点( 文本 )的值是序列化对象以及 att 属性上的字段。无需为此对象编写转换器就可以吗? 谢谢! 问题答案: 写一个转换器,应该类似于代码片段 在使用XStream时,注册转换器

  • 我有一个SVG文档,其中包含类似于以下内容的节点: 我想做的只是选择

  • 主要内容:节点锚点,节点标签,节点内容每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。 节点表示的基本示例如下 - 节点锚点 属性表示将来参考的节点。 节点中YAML表示的字符流用符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 - 锚节点生成的YAML输出如下所示 - 节点标签 属性表示完全定义节点的本机数据结构的类型。 标签用()指示符表示。 标签被视

  • 无法完成这项理论上相对简单的任务: 查找节点文档,其中Field具有包含特定文本的属性Name,并且子节点Option具有值。 XML: 所以我希望能够将模板应用到文档中,比如 但那是行不通的。 只需指定:文档必须在选项中包含文本,该选项是包含特定文本的字段的子节点。 在xml中,使用输入值: 1:Børn Fridslip= 2: Børn-Fritidsklub= 3:Børn Fritid=

  • 我的java密码如下: 它可以在cypher控制台上工作,但不能在JDBC上工作。 我得到了这个错误: 密码: