xml - PowerShell - 不区分大小写的 XML 属性名称的 xpath
问题描述
我有一个 XML,其中属性名称可以是小写和大写字母的组合。在下面的示例中,'datasource' 属性可以有任意数量的小写和大写字母。
我需要获取“数据源”为 XML 的那些节点。我在整个互联网上进行了搜索,但找不到任何解决方案。translate(), lower-case() 有几个例子,但它们不适合我的场景。
[xml] $GM_ProcessXML =@'
<Process>
<Parameter Name="Parameter1" Datasource="XML"><![CDATA[Sujeet]]></Parameter>
<Parameter Name="Parameter2" DataSource="XML"><![CDATA[Padhi]]></Parameter>
<Parameter Name="Parameter3" DatASource="XML"><![CDATA[Padhi]]></Parameter>
<Parameter Name="Parameter4" datASource="XML"><![CDATA[Padhi]]></Parameter>
<Node>
<Node1 Name="Node1" Datasource="XML"><![CDATA[Sujeet]]></Node1>
<Node2 Name="Node2" DataSource="XML"><![CDATA[Padhi]]></Node2>
<Node3 Name="Node3" DatASource="XML"><![CDATA[Padhi]]></Node3>
<Node4 Name="Node4" datASource="XML"><![CDATA[Padhi]]></Node4>
</Node>
</Process>
'@
$XPath = "//*[@datasource='XML']"
$Nodes = $GM_ProcessXML.SelectNodes($XPath)
$Nodes
解决方案
缺少修改文件:
[xml]$GM_ProcessXML = @'
<Process>
<Parameter Name="Parameter1" Datasource="XML"><![CDATA[Sujeet]]></Parameter>
<Parameter Name="Parameter2" DataSource="XML"><![CDATA[Padhi]]></Parameter>
<Parameter Name="Parameter3" DatASource="XML"><![CDATA[Padhi]]></Parameter>
<Parameter Name="Parameter4" datASource="XML"><![CDATA[Padhi]]></Parameter>
<Node>
<Node1 Name="Node1" Datasource="XML"><![CDATA[Sujeet]]></Node1>
<Node2 Name="Node2" DataSource="XML"><![CDATA[Padhi]]></Node2>
<Node3 Name="Node3" DatASource="XML"><![CDATA[Padhi]]></Node3>
<Node4 Name="Node4" datASource="XML"><![CDATA[Padhi]]></Node4>
</Node>
</Process>
'@ -replace 'datasource','datasource'
$XPath = "//*[@datasource='XML']"
$Nodes = $GM_ProcessXML.SelectNodes($XPath)
$Nodes
Name datasource #cdata-section
---- ---------- --------------
Parameter1 XML Sujeet
Parameter2 XML Padhi
Parameter3 XML Padhi
Parameter4 XML Padhi
Node1 XML Sujeet
Node2 XML Padhi
Node3 XML Padhi
Node4 XML Padhi
推荐阅读
- c# - 如何使用 C# 获取 Div 的内容?
- c# - 如何从字符串中获取类引用?
- c# - RedisDB尝试执行flushdb时抛出超时异常
- apache - 带有 C# Restsharp 的 Magento 2 Rest API 无法获取包含符号的股票项目
- haskell - 如何将库或前奏导入 GHC.runGhc 运行的上下文中
- html - 新元素丰富内容溢出
- php - 当我在编辑页面上时如何获取数组值?
- ios - Appium在ios真机的Web View中不执行任何操作
- php - 使用 PHP 相互打印 HTML 文件
- node.js - 如何使用 puppeteer node.js 从 xml 字符串中删除特殊字符