首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML文件格式-删除杂乱的CRLF

XML文件格式-删除杂乱的CRLF
EN

Stack Overflow用户
提问于 2016-07-12 07:40:02
回答 1查看 595关注 0票数 1

我有一个输入XML文件(不是很大- 200),它的奇怪记录格式很差,即由不需要的CRLF字符隔开的注释,这些字符放在单独的行上:

代码语言:javascript
复制
<NonStandardAddress>
    <LocationId>L127755</LocationId>
    <Street>UNKNOWN</Street>
    <PostCode>U</PostCode>
</NonStandardAddress>
<Notes>
67 High Street
Newtown
Newshire
RG30 9ZA</Notes>
<StartDate>1970-12-23</StartDate>

它应该是这样的,文本用逗号隔开一行:

我认为这是一个两个步骤的过程:

  1. 查找没有以>符号结尾的所有行,并添加逗号(这个shold在每个条目之间给出一个分隔符)
  2. 用逗号替换带有逗号和CRLF的行(这将使所有不匹配的行回到1行上)

我使用的是PowerShell v2,所以我不能使用-Raw读取源文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 07:53:36

我将使用Get-Content cmdlet读取XML,并使用带有XPath表达式的SelectNodes方法检索所有元素。然后遍历文本,并将所有CRLF替换为,

代码语言:javascript
复制
$filePath = 'your_path'
$xml = [xml](Get-Content $filePath)
$xml.SelectNodes('//text()') | ForEach-Object {  
    $_.Value = ($_.Value.Trim() -split "`r?`n") -join ', '
}
$xml.Save($filePath)

输出:

代码语言:javascript
复制
<NonStandardAddress>
  <LocationId>L127755</LocationId>
  <Street>UNKNOWN</Street>
  <PostCode>U</PostCode>
</NonStandardAddress>
<Notes>67 High Street, Newtown, Newshire, RG30 9ZA</Notes>
<StartDate>1970-12-23</StartDate>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38322740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档