如何用PowerShell将XML文件的CDATA内容保存至文本文件
使用PowerShell提取XML中CDATA内容并保存到文本文件
针对你提供的file.xml,可以通过以下PowerShell脚本提取<content>节点内的CDATA内容,并保存为文本文件:
基础脚本(单节点场景)
# 加载XML文件,指定UTF-8编码确保特殊字符正确解析 $xml = [xml](Get-Content -Path ".\file.xml" -Encoding UTF8) # 提取<content>节点下的CDATA内容 $cdataContent = $xml.template.content.InnerText # 将内容保存到文本文件,保持UTF-8编码避免乱码 $cdataContent | Out-File -Path ".\output.txt" -Encoding UTF8
脚本说明
[xml](Get-Content ...):把XML文件内容转换为PowerShell可操作的XML对象,指定UTF-8编码适配原文件的字符集。$xml.template.content.InnerText:通过XML节点层级直接访问目标内容,CDATA区段的文本会被自动解析,无需手动移除<![CDATA[和]]>标记。Out-File -Encoding UTF8:确保输出的文本文件保留原内容的特殊字符(如土耳其语字符),避免乱码。
扩展脚本(多节点场景)
如果XML中有多个<content>节点,或者需要更灵活的节点定位,可以使用XPath查询:
# 用XPath匹配所有层级下的<content>节点 $cdataNodes = Select-Xml -Path ".\file.xml" -XPath "//content" # 提取所有匹配节点的内容并保存 $cdataNodes.Node.InnerText | Out-File -Path ".\output.txt" -Encoding UTF8
执行以上脚本后,output.txt的内容会和你期望的输出完全一致。
内容的提问来源于stack exchange,提问作者Burak Celik
相关产品推荐
相关产品推荐

