xml - 如果语句为真,则使用 Xpath 搜索字段名的值并打印另一个属性
问题描述
我目前正在寻找一种方法来搜索 xml 文件并在满足条件时显示属性。
xml文件是这样的
<Import xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Category Name="Personen-Stellen-Import">
<Record>
<Field FieldName="Person.EmailGeschaeft">
<String>bla.blup1@ospelt.com</String>
</Field>
<Field FieldName="Person.IstReferent">
<String>1</String>
</Field>
</Record>
<Record>
<Field FieldName="Person.EmailGeschaeft">
<String>bla.blup2@ospelt.com</String>
</Field>
<Field FieldName="Person.IstReferent">
<String>0</String>
</Field>
</Record>
<Record>
<Field FieldName="Person.EmailGeschaeft">
<String>bla.blup3@ospelt.com</String>
</Field>
<Field FieldName="Person.IstReferent">
<String>0</String>
</Field>
</Record>
<Record>
<Field FieldName="Person.EmailGeschaeft">
<String>bla.blup4@ospelt.com</String>
</Field>
<Field FieldName="Person.IstReferent">
<String>1</String>
</Field>
</Record>
</Category>
</Import>
每个人都有它的条目<rekord> and </rekord>
。现在如果Field Fieldname = "Person.IstReferent"
匹配下的字符串1
,它应该打印这个特定人的电子邮件。电子邮件存储在FieldName"Person.EmailGeschaeft
. 你知道有什么方法可以制作一个powershell脚本,它可以显示所有符合条件的电子邮件并将其打印在一个文件中或显示它?
解决方案
Sage Pourpre 的回答是完美的。更短的 XPath :
//String[text()="1"]/preceding::String[1]/text()
推荐阅读
- rest - 为什么服务器响应状态为 400
- reactjs - 路由 - 重定向(Next JS)
- r - 将列表名称与函数输入匹配
- python - 需要通过 xpath 选择元素的动态 python selenium 方式
- python - python:如何创建以元组形式为来自 A 和 B 的整数生成所有可能组合的东西
- python - 将每个个人 ID 的 3 个日期旋转到列
- python - 有没有办法在 django 中添加 Q 对象?
- performance - 操作系统会减慢程序的执行速度吗?
- python - 根据最后 4 个字符从两个列表中返回匹配字符串
- ruby - Bundler 找不到 gem "globalize" 的兼容版本: