0

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

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

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

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

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

4

1 回答 1

0

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

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

于 2009-08-27T23:51:13.657 回答