【问题标题】:Find and replace with asterisk character查找并替换为星号字符
【发布时间】:2018-12-07 04:38:31
【问题描述】:

这不是一个真正的编程问题,我只是有一个这样的 XML 文件:

<product>
    <id>123</id>
</product>
<product>
    <id>245</id>
</product>
<product>
    <id>356</id>
</product>

我想找到所有的 id 并用一个“0”替换它们。由于 ID 不同,我不能使用 notepad++,因为它找不到像 &lt;id&gt;*&lt;/id&gt; 这样的东西,我该怎么做呢?文件很长。

【问题讨论】:

  • 使用 XML 感知工具来处理 XML。
  • XPapth 与 \\id ?

标签: xml replace find notepad++


【解决方案1】:

使用可识别 XML 的工具来处理 XML。例如,xsh 你可以写

open file.xml ;
for //product/id set text() 0 ;
save :b ;

【讨论】:

    【解决方案2】:

    注意:按照给定的 XML 结构回答。

    使用 Notepad++ 正则表达式并将 \d+ 替换为 0。

    【讨论】:

    • 如果你有会发生什么:&lt;price&gt;123&lt;/price&gt;?
    • 然后使用类似:查找 \d+ 到 0 替换。
    【解决方案3】:

    即使在 Notepad++ 中,您也可以使用基于正则表达式的查找和替换来替换标记内容:

    搜索:

    <id>[^<>]+</id>
    

    并将其替换为:

    <id>0</id>
    

    这应该是查找和替换窗口(记得启用“正则表达式”):

    替换前的XML:

    替换后的XML:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 2013-07-10
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2018-09-10
      相关资源
      最近更新 更多