XERCES-Cを使用して、XMLにStyleSheet宣言を追加します
-
13-10-2019 - |
質問
Xerces-CをメインXML操作ライブラリとして使用してC ++でアプリケーションを使用しています。
Domdocument*とパーサーがあり、宣言を設定したいと思います。
私は次のことをします:
parser->setValidationScheme(xercesc::XercesDOMParser::Val_Never);
parser->setDoSchema(false);
parser->setLoadExternalDTD(false);
追加したい:
<?xml-stylesheet type="text/xsl" href="my_xslt.xsl"?>
どうすればできますか?
解決
domdocumentでcreateprocessinginstructionを使用する必要がありますhttp://xerces.apache.org/xerces-c/apidocs-3/classdomdocument.html#ce898787ba20c00c85be63f28a358507
作成したら、documentlementに追加します。
他のヒント
これを行うためのコードは次のとおりです。
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スタイルの文字列をXerces互換としてエンコードする関数です XMLCh
-ストリング。
所属していません StackOverflow