xslt - 基于属性值的 XPath
问题描述
我正在尝试根据条件获取属性,我的 XML 是
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset"
xmlns:z="#RowsetSchema">
<rs:data ItemCount="2">
<z:row ows_Attachments=";#/Attachments/79/164351;#" ows_ID="79" />
<z:row ows_Attachments=";#/Attachments/80/164352;#" ows_ID="80" />
</rs:data>
</listitems>
我想获取 ows_ID,其中 ows_Attachments 以特定数字结尾,例如
如果 ows_Attachments 以 164351 结尾或包含 164351,我想要 79;#
如果有任何正则表达式可用于删除所有命名空间等,然后如果它易于处理,我也愿意接受该选项。
解决方案
严格来说,使用 XPath,您可以选择属性:
//*[local-name()="row" and contains(@ows_Attachments,"/164351")]/@ows_ID
并使用 提取值:
string(//*[local-name()="row" and contains(@ows_Attachments,"/164351")]/@ows_ID)
输出:79
推荐阅读
- python-2.7 - tweepy python脚本上的意外错误参数等待限制
- mongodb - 数组中的MongoDB聚合匹配值
- amazon-web-services - DynamoDB 可扩展性:如何设计分区键与索引
- arrays - 将 MS Word 存储表中的行或列转换为 MS Word 文档中可搜索的文本数组
- python - 在终端上烧瓶正确的变量值,但在 HTML 模板中没有
- java - java.lang.NoSuchMethodError:Lcom/google/android/gms/common/zzc 类中没有静态方法 zza(Landroid/content/Context;)V;或其超类
- android - 如何在 Room 数据库中进行搜索?
- excel - VBA:从表复制并粘贴以创建列表
- python - 在没有多线程的情况下一次运行多个命令的方法?
- c - 如何使用 GLEW 进行自动 OpenGL 错误检查?