Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Powershell访问CDATA中的XML数据_Xml_Windows_Powershell_Cdata - Fatal编程技术网

如何使用Powershell访问CDATA中的XML数据

如何使用Powershell访问CDATA中的XML数据,xml,windows,powershell,cdata,Xml,Windows,Powershell,Cdata,我对Powershell很陌生,所以如果这是个简单的问题,请容忍我。我试图访问CDATA标记中的信息,但似乎无法访问。这是xml文件: example.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <fooMaster> <fooFirst>Hello there</fooFirst> <foo

我对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>

$file.fooMaster.fooFirst
工作正常,并在那里显示
Hello
,但该行下方的行不起作用。我在某个地方读到,添加
#cdata部分
会在cdata标记中显示信息,确实如此!但它将所有内容都显示为纯文本,是否有一种方法不仅可以访问CDATA中的信息,还可以像普通xml一样使用它。

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

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