如何在Powershell中查看所有XML级别
我有一个测试xml,我想从此行属性NAME=“News-offers\u OPT\u EMAIL”>F中获取值 所以我可以检查F或T的值 如果我在下面做,我可以得到标题,但我如何得到上面的行值如何在Powershell中查看所有XML级别,powershell,Powershell,我有一个测试xml,我想从此行属性NAME=“News-offers\u OPT\u EMAIL”>F中获取值 所以我可以检查F或T的值 如果我在下面做,我可以得到标题,但我如何得到上面的行值 [xml]$xml = Get-Content testFile.xml $xml $xml.CUSTOMERS.CUSTOMER.NAME.TITLE 示例XML代码 <?xml version="1.0" encoding="UTF-8"?> &l
[xml]$xml = Get-Content testFile.xml
$xml
$xml.CUSTOMERS.CUSTOMER.NAME.TITLE
示例XML代码
<?xml version="1.0" encoding="UTF-8"?>
<CUSTOMERS xml:lang="en">
<CUSTOMER CREATED_DATE="2018-01-01 05:18:53.0" GROUP_ID="" ID="95656565">
<NAME>
<TITLE>M</TITLE>
<FIRST_NAME>Joe</FIRST_NAME>
<LAST_NAME>Smith</LAST_NAME>
</NAME>
<GENDER/>
<DATE_OF_BIRTH/>
<ADDRESS>
<ADDRESS_LINE_1>1 White House</ADDRESS_LINE_1>
<ADDRESS_LINE_2>Old Ave</ADDRESS_LINE_2>
<ADDRESS_LINE_3/>
<TOWNCITY>LONDON</TOWNCITY>
<COUNTY/>
<POSTCODE>18659</POSTCODE>
<COUNTRY>France</COUNTRY>
</ADDRESS>
<ADDRESS>
<ADDRESS_LINE_1>175 avenue de la division Leclerc</ADDRESS_LINE_1>
<ADDRESS_LINE_2/>
<ADDRESS_LINE_3/>
<TOWNCITY>Antony</TOWNCITY>
<COUNTY/>
<POSTCODE>92160</POSTCODE>
<COUNTRY>France</COUNTRY>
</ADDRESS>
<CONTACT_DETAILS>
<TELEPHONE MARKETING_OPT_IN="F" TYPE="MOBILE">0123456789</TELEPHONE>
<EMAIL MARKETING_OPT_IN="F">johnsmith@gmail.com</EMAIL>
</CONTACT_DETAILS>
<ATTRIBUTE NAME="News- offers_OPT_EMAIL">F</ATTRIBUTE>
<NOTE>NA</NOTE>
</CUSTOMER>
M
乔
史密斯
1白宫
老大街
伦敦
18659
法国
莱克莱尔大道175号
安东尼
92160
法国
0123456789
johnsmith@gmail.com
F
NA
您可以将或与XPath表达式一起使用。根据你的意图,有几种方法可以实现你想要的,但这是一种方法:
#查找节点
$nodes=$xml.SelectNodes(“/*[local-name()='ATTRIBUTE'][@name='News-offers\u OPT\u EMAIL']))
#获得价值
$nodes.InnerText
或者,如果属性的值无关紧要,只需执行以下操作:
$xml.customers.customer.attribute.'#text'
还要在PowershellOne中添加这一点最后一件事如果我想构建一个包含所有值的数组,这对上面的字段$myArrayList.MYOFFERS=$xml.CUSTOMERS.CUSTOMER.NAME['News-offers\u OPT\u EMAIL'是否有效.#text'@RogerClerkwell如果
$nodes