批处理文件以合并来自SQL Server 2005 bcp导出的xml文件

时间:2019-01-23 00:12:32

标签: sql-server xml batch-file bcp

我在SQL Server 2005中的bcp导出生成的文件夹中有几个xml文件。我发现使用bcp进行xml导出不会生成与Internet Explorer兼容的xml。但是我还发现,如果我创建一个新的空xml文件并将这些xml文件内容复制到该新文件中,则该文件与Internet Explorer兼容。

我需要创建一个批处理文件,以便为此文件夹中的每个文件创建此副本。我尝试使用cmd copy file.xml file1.xml,但是文件仍然不兼容。还有另一种方法来创建兼容Internet Explorer的xml?

1 个答案:

答案 0 :(得分:0)

我的投票是使用XML解析器,而不是尝试将XML数据合并为纯文本。不幸的是,批处理语言在XML解析方面没有提供太多帮助。但是,PowerShell可以。这是一个示例PowerShell脚本,它将读取所有* .xml文件并将其内容克隆到XML对象中,最后将其保存到名为joined.xml的文件中:

# File to save:
$outfile = "joined.xml"

# create an XML object with a single empty container node
$x = [xml]"<root></root>"

# Delete previous export if exists to avoid cumulative runs
if (test-path $outfile) { del $outfile }

# For each XML file...
gci *.xml | %{

    # Read the contents and cast as an XML object.  Then for each root node...
    ([xml](gc $_)).selectNodes("/*") | %{

        # Clone the node and its descendants into our XML object's container node.
        [void]$x.selectSingleNode("/root").AppendChild($x.ImportNode($_, $true))
    }
}

# Finally, save the resulting XML data to a file.
$x.Save($outfile)