Как я могу удалить все комментарии из большого файла XML?

Как я могу удалить все комментарии из большого файла XML?

У меня есть большой файл XML, и я хочу его уменьшить, и я хочу удалить все комментарии. Файл имеет размер более 200 МБ, и для его анализа и запроса требуется много времени.

Код для разбора:

<?php

$dom    = new DOMDocument();
$xpath  = new DOMXPath($dom);
$reader = new XMLReader();
$reader->open('http://www.bookingassist.ro/test/HotelsPro.xml');

while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'Hotel') {
$node = $dom->importNode($reader->expand(), true);
$dom->appendChild($node);
$result = $xpath->evaluate('string(self::Hotel[HotelCode = "'.$hotelCodes[3].'"]/HotelImages/ImageURL[1])', $node);
$dom->removeChild($node);
if ($result) {
echo $result;

}
}
}
?>

-2

Решение

Предполагая, что Xslt является опцией, вы можете использовать модифицированную версию преобразование идентичности который ничего не будет проецировать ни на один comment:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="comment()"/>

</xsl:stylesheet>

Скрипка здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]