0

我需要在 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 解析器来完成。谢谢

4

1 回答 1

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++ 周围的额外括号才能让 PowerShell 发出 $i 的值。

于 2013-09-17T15:04:24.810 回答