我需要使用标记名称加上增量值来查找和替换xml文档中的多个标记值。我拥有的测试数据每个字符串都有一个常量值,我想用它周围的标签名称替换它,然后加上一个递增的值
例如)
<CREATE_DT>str1234</CREATE_DT>
<SOLD_TO>str1234</SOLD_TO>
<SHIP_TO>str1234</SHIP_TO>
到
<CREATE_DT>CREATE_DT_tag_1</CREATE_DT>
<SOLD_TO>SOLD_TO_tag_2</SOLD_TO>
<SHIP_TO>SHIP_TO_tag_3</SHIP_TO>
我认为这可以作为文本操作或xml解析器来完成。 THX
答案 0 :(得分:0)
这样的事情应该有效:
$str = [xml]@"
<DOC>
<CREATE_DT>str1234</CREATE_DT>
<SOLD_TO>str1234</SOLD_TO>
<SHIP_TO>str1234</SHIP_TO>
</DOC>
"@
$i = 1
$str.DOC | Select-Xml -XPath '*' |
Foreach {$_.Node.InnerText = $_.Node.LocalName + "_$(($i++))"}
注意:除了更新值之外,还需要$ i ++附近的额外parens才能让PowerShell发出$ i的值。