XPath 1 查询和属性名称

2024-03-15

第一个问题:有什么办法可以得到name节点的属性?

<node attribute1="value1" attribute2="value2" />

第二个问题:有没有办法以值对的形式获取属性和值?情况如下:

<node attribute1="10" attribute2="0" />

我想获取值>0的所有属性,这样:“attribute1=10”。


第一个问题:有什么办法吗 获取节点属性的名称?

<node attribute1="value1" attribute2="value2" />

是的: 这个 XPath 表达式 (when node是上下文(当前)节点)):

    name(@*[1])

产生第一个属性的名称(顺序可能与实现相关)

和这个 XPath 表达式 (when node是上下文(当前)节点)):

    name(@*[2])

产生第二个属性的名称(顺序可能与实现相关)。

第二个问题:有没有办法获得 属性和值作为值对? 情况如下:

<node attribute1="10" attribute2="0" />

我想获取所有属性 value>0 这样:“attribute1=10”。

这个 XPath 表达式(当属性名为“attribute1“是上下文(当前)节点)):

    concat(name(), '=', .)

产生字符串:

    attribute1=value1

和这个 XPath 表达式(当节点node是上下文(当前)节点)):

    @*[. > 0]

选择上下文节点的所有属性,其值为数字,大于0。

在 XPath 2.0 中,可以将它们组合在一个 XPath 表达式中:

    @*[number(.) > 0]/concat(name(.),'=',.)

得到(在这种特殊情况下)这个结果:

    attribute1=10

如果您使用的是 XPath 1.0,这是不太强大的,你会需要将 XPath 表达式嵌入到托管语言中,例如 XSLT。以下 XSLT 1.0 转换:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>

  <xsl:template match="/*">
      <xsl:for-each select="@*[number(.) > 0]">
        <xsl:value-of select="concat(name(.),'=',.)"/>
      </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

当应用于此 XML 文档时:

<node attribute1="10" attribute2="0" />

产生完全相同的结果:

    attribute1=10

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XPath 1 查询和属性名称 的相关文章

随机推荐

  • 如何使用 Language-Ext 将 Task> 绑定到 Either<>

    我有可以请求数据库中保存的卡列表的设备 例如移动电话 支付终端等 为了安全起见 设备需要对自己进行授权 并在 JWT 令牌中提供其序列号 如果其中任何一项不匹配 我们将拒绝该请求 感谢最近对相关问题的大量帮助 我现在有两种在类似场景中使用的
  • 从 Facebook 页面提取公共帖子,无需 API/APP 密钥/令牌/秘密

    提前澄清一下 我没有 Facebook 帐户 也无意创建一个帐户 另外 我想要实现的目标在我的国家和美国是完全合法的 我不想使用 Facebook API 来获取 Facebook 页面的最新时间线帖子 而是直接向页面 URL 发送获取请求
  • 当我在 ASP.NET 中组合 Bearer Token 和 Cookie 身份验证时,出现 401

    我需要结合令牌和 cookie 来授权 wepapi 项目中的请求 我添加了 Cookie 和 Jwt 来验证请求 在更改 DefaultPolicy 之前 我可以获得我的声明 信息 但更改后我得到 401 这是我的 Program cs
  • 在 R 中,变量与基本 R 函数同名到底有什么问题?

    使用在基本 R 中具有相同名称的函数的变量名称似乎通常被认为是不好的编程习惯 例如 很容易写成 data lt data frame df lt data frame 现在 函数data函数加载数据集df计算 f 密度函数 同样 也很容易写
  • Jupyter Notebook 将默认文件夹设置为根目录

    我在 Windows 7 上使用 Jupyter Notebook 我想将默认文件夹设置为D 目前 我的 jupyter notebook config py 中有以下行 c NotebookApp notebook dir D 当我打开
  • 如何在Python中读取QLineEdit中的文本?

    我为我的插件创建了一个带有 3 个按钮的启动 GUI 这非常有效 如果我单击其中一个按钮 就会启动特定操作 到目前为止这有效 如果我单击其中一个按钮 则会出现一个带有两个按钮 确定 和 取消 的新 GUI 以及一个行编辑 如果我按下 取消
  • 如何在Geofence android中添加后台服务

    我正在尝试创建一个带有监控后台服务的地理围栏 地理围栏创建成功并在应用程序活动打开时工作 但在关闭应用程序地理围栏时不起作用 我现在应该怎么做 我的代码是 public class MapsActivity extends Fragment
  • 在 Eclipse 中使用 Maven Android 原型

    我正在尝试使用以下原型 https github com akquinet android archetypes wiki Android release archetype https github com akquinet androi
  • 如何在FragmentStatePagerAdapter中动态添加页面

    我知道这个问题被问了很多次 但经过多次研究后我没有得到答案 在我的主要活动中 我有一个视图寻呼机 并为此设置了一个适配器 public void onCreate Bundle savedInstanceState super onCrea
  • R 中按日期范围设置的 data.table 子集

    我在 data table 中有一个大型数据集 我想按日期范围对其进行子集化 我的数据集如下所示 testset lt data table date as Date c 2013 07 02 2013 08 03 2013 09 04 2
  • 如何从一个视图访问另一个视图的数据?

    我有一个UITabBarController有两个选项卡 UINavigationController OptionsViewController UIViewController 我如何获取数据 即UILabel text 设于Optio
  • 帕累托最优前沿

    我试图获得两个适应度函数的帕累托最优前沿 我通过使用虚拟矩阵对非支配解进行排序 该虚拟矩阵在矩阵中为任何非支配解分配 1 当我绘制帕累托前沿时 它不断包含我知道不属于帕累托最优的点 但是 我似乎找不到这个问题的原因 任何帮助将非常感激 fo
  • WebClient 下载字符串与 WebBrowser 查看源代码不同

    我正在创建一个 C 4 0 应用程序来使用 Web 客户端下载网页内容 网络客户端功能 public static string GetDocText string url string html string Empty try usin
  • Chrome:检查元素与查看源代码

    我正在使用 Chrome 10 接收 XML 格式的 Web 服务响应 请求成功完成 然后我想查看结果的内容 我转到 检查元素 并查看所需的 XML 出于好奇 我还查看了源码 我非常确定 Chrome 的工作方式是 Inspect Elem
  • D3 防止双击缩放[重复]

    这个问题在这里已经有答案了 我有一个 D3 网络图 我正在尝试禁用双击缩放功能 我使用它进行缩放 var zoom d3 behavior zoom scaleExtent minZoom maxZoom zoom on zoom func
  • JMS QueueSender 线程安全吗?

    我想在多线程环境中使用 QueueSender Is QueueSender send 线程安全 No a MessageProducer QueueSender不是线程安全的 或者更具体地说 Session http java sun c
  • 计算泊松概率百分比

    当您在 Excel 或 OpenOffice Calc 中使用 POISSON 函数时 它需要两个参数 一个整数 一个 平均 数字 并返回一个浮点数 在 Python 中 我尝试了 RandomArray 和 NumPy 它返回一个随机泊松
  • 如何在iOS应用程序中运行可执行文件?

    我想在我的系统中运行一个可执行文件iOS应用程序 或者执行一些命令行命令 我认为这可以在 NSTask 的帮助下完成 但这似乎在 iOS 中不可用 它仅适用于 mac OS X So 如何从我的应用程序运行可执行文件 或者我如何从我的应用程
  • 我可以从特定IP(如果机器有两个IP)在PHP中打开套接字吗?

    我正在使用 PHPMailer 它使用fsockopen访问 SMTP 服务器 但该机器有两个具有不同反向 DNS 记录的 IP 所以在电子邮件标题中我得到以下内容 Received from one server tld HELO ano
  • XPath 1 查询和属性名称

    第一个问题 有什么办法可以得到name节点的属性