如何在Powershell中查看所有XML级别

如何在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,我想从此行属性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"?>
<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