如何使用 Powershell 访问 CDATA 中的 XML 数据
How to access XML data inside CDATA with Powershell
我是 Powershell 的新手,如果这看起来是一个简单的问题,请多多包涵。我正在尝试访问 CDATA 标签内的信息,但我似乎做不到。这是 xml 文件:
example.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<fooMaster>
<fooFirst>Hello there</fooFirst>
<fooCDATA>
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<fooChild>
<data>
Hello everyone
</data>
</fooChild>]]>
</fooCDATA>
</fooMaster>
这是我的 ps1 文件:
脚本.ps1
$XMLfile = 'example.xml'
[XML]$file = Get-Content $XMLfile
write-Host "fooFirst contains: " $file.fooMaster.fooFirst
write-Host "data contains: " $file.fooMaster.fooCDATA."#cdata-section".fooChild.data
Read-Host -Prompt "Press Enter to exit"
$file.fooMaster.fooFirst
完美运行并显示 Hello there
,但是该行下方的行不起作用。我在某处读到,添加 .#cdata-section
会在 CDATA 标签内显示信息,确实如此!但它显示所有内容就好像它是纯文本一样,有没有办法不仅可以访问 CDATA 中的信息,还可以像常规 xml.
一样使用它
要访问 CDATA 中的元素,请进入另一个变量:
[xml]$cdata = $file.fooMaster.fooCDATA."#cdata-section"
write-Host "data contains: $($cdata.fooChild.data.tostring().trim())
我是 Powershell 的新手,如果这看起来是一个简单的问题,请多多包涵。我正在尝试访问 CDATA 标签内的信息,但我似乎做不到。这是 xml 文件:
example.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<fooMaster>
<fooFirst>Hello there</fooFirst>
<fooCDATA>
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<fooChild>
<data>
Hello everyone
</data>
</fooChild>]]>
</fooCDATA>
</fooMaster>
这是我的 ps1 文件:
脚本.ps1
$XMLfile = 'example.xml'
[XML]$file = Get-Content $XMLfile
write-Host "fooFirst contains: " $file.fooMaster.fooFirst
write-Host "data contains: " $file.fooMaster.fooCDATA."#cdata-section".fooChild.data
Read-Host -Prompt "Press Enter to exit"
$file.fooMaster.fooFirst
完美运行并显示 Hello there
,但是该行下方的行不起作用。我在某处读到,添加 .#cdata-section
会在 CDATA 标签内显示信息,确实如此!但它显示所有内容就好像它是纯文本一样,有没有办法不仅可以访问 CDATA 中的信息,还可以像常规 xml.
要访问 CDATA 中的元素,请进入另一个变量:
[xml]$cdata = $file.fooMaster.fooCDATA."#cdata-section"
write-Host "data contains: $($cdata.fooChild.data.tostring().trim())