Добавление объявления таблицы стилей в мой xml с помощью Xerces-C - PullRequest
2 голосов
/ 20 января 2011

У меня есть приложение на c ++, использующее Xerces-C в качестве основной библиотеки для работы с XML.

У меня есть DOMDocument * и мой парсер, и я хочу установить объявления.

Я делаю следующее:

parser->setValidationScheme(xercesc::XercesDOMParser::Val_Never);
parser->setDoSchema(false);
parser->setLoadExternalDTD(false);

Я хочу добавить:

<?xml-stylesheet type="text/xsl" href="my_xslt.xsl"?>

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 21 января 2011

Вам нужно будет использовать инструкцию createProcessingInstruction для DOMDocument http://xerces.apache.org/xerces-c/apiDocs-3/classDOMDocument.html#ce898787ba20c00c85be63f28a358507

После того, как вы его создали, добавьте его в DocumentElement.

0 голосов
/ 10 июня 2018

Вот код для этого:

xercesc::DomDocument *doc;
// ... (initialize doc in some way)
auto root = doc->getDocumentElement();
auto stylesheet = doc->createProcessingInstruction
  (X("xml-stylesheet"), X("type=\"text/xsl\" href=\"custom.xsl\""));
doc->insertBefore(stylesheet, root);

Таким образом, информация о таблице стилей появляется в прологе документа, который является типичным местом для этого.X() - это некоторая функция, которая кодирует строку в стиле C в виде XMLCh -строки, совместимой с Xerces.

...