【问题标题】:How to access XML data inside CDATA with Powershell如何使用 Powershell 访问 CDATA 中的 XML 数据
【发布时间】:2020-11-27 08:08:06
【问题描述】:

我对 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文件:

script.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 一样使用它。

【问题讨论】:

    标签: xml windows powershell cdata


    【解决方案1】:

    要访问 CDATA 中的元素,请进入另一个变量:

    [xml]$cdata = $file.fooMaster.fooCDATA."#cdata-section"
    write-Host "data contains: $($cdata.fooChild.data.tostring().trim())
    

    【讨论】:

      猜你喜欢
      • 2011-08-24
      • 2010-11-19
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      相关资源
      最近更新 更多