Я пытаюсь вывести HTML в слово с помощью phpWord.Однако что-то странное.Он прекрасно работает для следующего кода:
$content = '';
$content .= '<table><tr><th>Header</th><td>Content</td></tr></table>';
$content .= '<ul><li>Bullet</li><ul><li>Bullet</li></ul></ul>';
$content .= '<ol><li>Bullet</li></ol>';
Html::addHtml($newSection, $content);
, но не работает для этого:
$content = '';
$content .= '<table><tr><th>Header</th><td>Content</td></tr></table>';
$content .= '<p>Bullet</p>';
$content .= '<p>Cat</p>';
Html::addHtml($newSection, $content);
и выдает ошибку, упомянутую в заголовке.
ОБНОВЛЕНИЕ
Эта ошибка генерируется из этого файла: \ vendor \ phpoffice \ phpword \ src \ PhpWord \ Shared \ Html.php
В этом методе:
private static function parseChildNodes($node, $element, $styles, $data)
{
if ('li' != $node->nodeName) {
$cNodes = $node->childNodes;
if (count($cNodes) > 0) {
foreach ($cNodes as $cNode) {
if ($element instanceof AbstractContainer) {
self::parseNode($cNode, $element, $styles, $data);
}
}
}
}
}
Но это происходит только при использовании тега <p>
html, и это нормально для всех других тегов.
Я также натолкнулся на эту ссылку: addHtml () не поддерживает теги внутри тегов списка,# 521