下面是XML
<?xml version="1.0" encoding="UTF-8"?>
<Configuration APIVersion="1905.1" IPS_CAT_VER="0">
<Notificationlist transactionid="">
<SendEmail>Enable</SendEmail>
<SendSnmp>Disable</SendSnmp>
<SignInEmail>Enable</SignInEmail>
<SignInSnmp>Disable</SignInSnmp>
<TooManyLoginEmail>Disable</TooManyLoginEmail>
<TooManyLoginSnmp>Disable</TooManyLoginSnmp>
</Notificationlist>
</Configuration>
我需要两个数组,一个带有Enable* Notificationlist,一个带有Disable**Notificationlist,就像
Enable Disable
------ -------
SendEmail SendSnmp
SignInEmail SignInSnmp
TooManyLoginEmail
TooManyLoginSnmp
我试过
$xml = (Select-Xml -Path C:\Users\Lenovo\Desktop\shellscripts\xml\SNMP.xml -XPath '/Configuration/Notificationlist')
$nodes = $xml | ForEach-Object { $_.Node | select -ExpandProperty InnerText }
但它只给出节点值而不给出节点名称。
2条答案
按热度按时间5f0d552i1#
你可以使用下面的代码,它会给予你两个变量
$Enabled
和$Disabled
。要为启用值和禁用值的节点名称给予两个数组,请执行以下操作:3phpmpom2#
由于您希望执行两个不同的查询,我建议先加载XML一次,然后执行两个XPath查询。
XPath表达式
*[text()="SomeText"]
给出了所有具有给定文本的文本子节点的元素。要获取节点名,只需查询节点的
Name
属性。