У меня довольно большой XML-файл размером около 3-4 МБ, и мне нужно обернуть некоторые элементы внутри тегов. Мой Xml имеет следующую структуру:Большой XML-файл - оберните элементы внутри тегов с помощью XSLT или манипулируя XML как String?
<body>
<p></p>
<p>
<sectPr></sectPr>
</p>
<p></p>
<p></p>
<tbl></tbl>
<p>
<sectPr></sectPr>
</p>
</body>
Конечно, все p
и tbl
элементов будут повторяться внутри body
до конца файла (также каждый из элементов, представленных выше, будет иметь ребенок, - я просто взял их для простоты). В качестве оценки у меня будет около 70 элементов, содержащих sectPr
внутри body
, не обязательно в том порядке, который я описал выше.
Что бы я хотел сделать, это обернуть все элементы, которые начинаются с элемента, содержащего sectPr
, следующему элементу, содержащему sectPr
в другой тег. В результате, мой XML должен выглядеть следующим образом:
<body>
<p></p>
<myTag>
<p>
<sectPr></sectPr>
</p>
<p></p>
<p></p>
<tbl></tbl>
</myTag>
<myTag>
<p>
<sectPr></sectPr>
</p>
</myTag>
</body>
Кроме того, еще одно требование в том, что операция должна быть выполнена до 40 секунд.
Мой вопрос: Как вы думаете, можно ли достичь этого результата с помощью XSLT, и если это так, пожалуйста, предоставьте краткое описание того, как я могу это сделать, или вы считаете, что лучше читать XML-файл как String, а затем добавить теги, манипулируя строкой?
Кроме того, как язык программирования, я использую Visual Basic.
Заранее спасибо.
Какую версию XSLT вы используете? Может ли быть более потомок 'sectPr' элементов внутри' sectPr'? Если бы вы хотели бы добавить еще один тег? –
должен добавить визуальный базовый тег – amdixon
Я использую XSLT 1.0, и только
p
элементы могут иметь либо не более, либо не более одногоsectPr
внутри них. Кроме того,sectPr
не имеет детей. – Andy