Я работаю над XML-файлом, который имеет открывающие теги, за которыми следуют некоторые дочерние теги с внутренним текстом. Когда открывающий тег появляется снова, он делает это без закрывающего тега для предыдущего. Так, например, файл выглядит следующим образом:Цикл через xml для добавления отсутствующего тега
<?xml version="1.0" encoding="utf-8"?>
<invoice>
<id>999</id>
<newRa elem="0">
<createD>20150519</createD>
<modD>12345</modD>
</newRa>
<total>123.99</total>
<invoice>
Я хочу создать Vb подпрограмму, которая использует XPath, чтобы добавить «/ счет» метки на каждом вхождении «счетов-фактуры».
Должно выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<invoice>
<id>999</id>
<newRa elem="0">
<createD>20150519</createD>
<modD>12345</modD>
</newRa>
<total>123.99</total>
</invoice>
<invoice>
...
...
Я работаю с файлом размером 200 МБ, поэтому он бросает исключение system.outofmemory. Любое обходное решение для этого? – Gmac
У меня нет файла размером 200 МБ xml для тестирования, поэтому я не могу быть уверен, но вы, вероятно, можете использовать streamreader для чтения каждой строки и добавления ее в новый файл. Когда содержимое линии равно «», вам нужно добавить «» & vbCrLf & «https://msdn.microsoft.com/en-us/library/db5x7c0d%28v=vs.110%29 .aspx –
Да, я на самом деле начал использовать streamreader, но использовал ваш кусок, где он заменяет закрывающий тег тем же тегом, добавляет строку и добавляет тег закрытия счета. Позволяет вам знать, спасибо! – Gmac