Действительно ли возможно вставить тег комментария в xml, использующий simplexml?

Я использую SimpleXML для создания документа, и задающийся вопросом, возможно ли вставить тег комментария в документ как это:

<root>
  <!-- some comment -->
  <value>
</root>

Править:

Комментарий где-нибудь посреди документа.

<root>
  <tag1 />
  <!-- some comment -->
  <value />
</root>
8
задан pihentagy 27 January 2010 в 15:19
поделиться

2 ответа

К сожалению, Simplexml не обрабатывает комментарии. Как было упомянуто, DOM делает справляться с комментариями, но это своего рода, чтобы использовать для простых вещей, по сравнению с Simplexml.

Моя рекомендация: попробуйте SimpleDom . Это расширение для Simplexml, поэтому все работает так же, и у него есть куча полезных методов для решения DOM.

Например, Ввод ($ Content, $ Mode) может приложение или вставить комментарии до или после данного узла Отказ Например:

include 'SimpleDOM.php';

$root = simpledom_load_string('<root><value/></root>');

$root->value->insertComment(' mode: append ', 'append');
$root->value->insertComment(' mode: before ', 'before');
$root->value->insertComment(' mode: after ', 'after');

echo $root->asPrettyXML();

... будет эхо

<?xml version="1.0"?>
<root>
  <!-- mode: before -->
  <value>
    <!-- mode: append -->
  </value>
  <!-- mode: after -->
</root>
6
ответ дан 5 December 2019 в 10:02
поделиться

Нет, но, по-видимому, вы можете использовать DomDocument в качестве обходного пути (нем.):

    $oNodeOld = dom_import_simplexml($oParent);
    $oDom = new DOMDocument();
    $oDataNode = $oDom->appendChild($oDom->createElement($sName));
    $oDataNode->appendChild($oDom->createComment($sValue));
    $oNodeTarget = $oNodeOld->ownerDocument->importNode($oDataNode, true);
    $oNodeOld->appendChild($oNodeTarget);
    return simplexml_import_dom($oNodeTarget);

Но опять же, почему бы не использовать DOM напрямую?

.
5
ответ дан 5 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: