PHP добавление вручную «возврата каретки» в XML создание «» в вывод - PullRequest
1 голос
/ 18 марта 2020

У меня есть XML файл, и мое требование состоит в том, чтобы сделать руководство реальным Возврат каретки после 76 символов в DigestValue элемент узла этого XML файла с использованием PHP

Делая это, я могу проверить свой XML с помощью определенной структуры системного валидатора. Я делаю это, используя следующую строку в PHP код.

$digest = wordwrap($digest, 76, "\r\n", true);

Однако я получаю & # 13; , что неверно, и я не могу проверить XML файл.

Я ищу решение сделать ручную возврат каретки с использованием PHP, но без & # 13; в XML строку.

До сих пор я тестировал следующие варианты.

$digest = wordwrap($digest, 76, "&#xA;", true); // <-- NEW LINE IS WORKING '0A' LF But no Carriage Return HAX Value
$digest = wordwrap($digest, 76, "&#13;&#10;", true);
$digest = wordwrap($digest, 76, "\r", true); // Gives --> IVkHH9IGqaDDHt&#13;iGfODKPJmg==
$digest = wordwrap($digest, 76, "\r\n", true);
$digest = wordwrap($digest, 76, "&#xD;&#xA;", true);
$digest = wordwrap($digest, 76, "&#xD;", true);
$digest = wordwrap($digest, 76, PHP_EOL, true);
$digest = wordwrap($digest, 76, "<![CDATA[\r\n]]>", true);
$digest = wordwrap($digest, 76, "\r&#xA;", true);
$digest = str_replace('&#13;','',$digest);
$digest = str_replace('&\\#13;','',$digest);            
$digest = str_replace('\x13','',$digest);   

Ниже приведены некоторые снимки экрана, которые могут быть полезны.

НЕПРАВИЛЬНАЯ программа просмотра HEX

enter image description here

НЕПРАВИЛЬНО XML Файл OUTPUT

enter image description here

ПРАВИЛЬНОЕ ЗНАЧЕНИЕ ГЕКСА

enter image description here

ПРАВИЛЬНО XML Файл OUTPUT

enter image description here

Я хочу предложить решение ИЛИ PHP решение ИЛИ любой другой способ добиться этого. Я проверил этот скрипт в Windows и Linux, поэтому я думаю, что это не зависит от ОС.

Summery Issue: Я хочу добавить «Возврат каретки» вручную к XML строка.

1 Ответ

0 голосов
/ 18 марта 2020

Поскольку синтаксический анализатор XML всегда преобразует \r\n в простой символ новой строки (\n) в дереве DOM, для сериализатора XML обычной практикой является предположение, что если он обнаружит \r в DOM дерево, вы помещаете его туда по какой-то причине и хотите, чтобы он сериализовался таким образом, чтобы он выдержал повторный анализ: он не может быть выведен как \r, потому что он не выдержит синтаксический анализ, поэтому он выводится как &#13;.

Таким образом, возникает вопрос: почему вы пытаетесь добавить символ CR к вашему XML, когда символы CR не имеют значения в XML? Какое реальное требование заставляет вас хотеть это сделать?

...