【问题标题】:What is the easiest way to search and replace in text files encoded UTF-16?在 UTF-16 编码的文本文件中搜索和替换的最简单方法是什么?
【发布时间】:2010-11-23 10:06:27
【问题描述】:

我正在尝试通过更改它们引用的名称来更新一系列 xml 文件。我有一个名称已更改的表,当前名称的列和要替换的名称的列。

我寻找脚本搜索和替换的方法并找到了 sed。在我第一次尝试之前,这似乎是一个不错的选择。在检查文件时,我在每个回车和换行之间发现了几个无法识别的字符。我做了一些搜索,发现在 utf-16 文件上使用 sed 存在问题。

这些是我正在搜索的文本文件,尽管有副本存储在 SQL Server 表中类型为 xml 的列中。更新或填充数据库时,字段始终设置为 ColumnName=N'xmltext'。

我也对如何更新这些字段感兴趣,但主要问题是如何最好地更新文本文件。

我正在使用扩展的正则表达式,我的搜索是 ([>\\.])OldName([<\\.]),我将其替换为 \1NewName\2

【问题讨论】:

    标签: xml regex search replace utf-16


    【解决方案1】:

    您可能必须将 XML 文件加载到实际的 XML 解析器中,然后使用 XPath 和/或 XQuery 语句来定位包含您要查找的名称值的元素。一旦你知道了具体的元素,你可以直接给它们分配新的值,然后将 XML 重新保存回文件。

    对于 SQL Server,其 XML 数据类型本身支持 XPath 和 XQuery 语句来搜索和更新元素数据。因此,您可能可以在这两种情况下使用相同的 XPath/XQuery 语句。

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2014-05-16
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 2011-10-02
      • 2021-04-13
      • 1970-01-01
      相关资源
      最近更新 更多