Пакетный файл для объединения XML-файлов из экспорта SQL Server 2005 BCP - PullRequest
0 голосов
/ 23 января 2019

У меня есть несколько файлов xml в папке, сгенерированной из экспорта bcp в SQL Server 2005. Я обнаружил, что экспорт xml с помощью bcp не создает xml, совместимый с Internet Explorer.Но я также обнаружил, что если я создаю новый пустой XML-файл и копирую содержимое этих XML-файлов в этот новый файл, этот файл совместим с Internet Explorer.

Мне нужно создать пакетный файл, чтобы сделать эту копию для каждого файла в этой папке.Я пытаюсь с cmd copy file.xml file1.xml, но файл все еще не совместим.Есть еще один способ создать совместимый с Internet Explorer xml?

1 Ответ

0 голосов
/ 23 января 2019

Мой голос - использовать синтаксический анализатор XML, а не пытаться объединить данные XML в виде простого текста. К сожалению, пакетный язык не предлагает много возможностей для анализа XML. PowerShell делает, однако. Вот пример скрипта PowerShell, который будет читать все файлы * .xml и клонировать их содержимое в объект XML, сохраняя его в конце в файле с именем join.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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...