当变音符号出现时,Poco DOM Writer停止写作

时间:2018-03-19 11:47:32

标签: xml encoding poco-libraries

我想用Poco :: XML :: DOMWriter创建一个XML文件。 但如果Node内部是变形金刚(ä,ö,ü等),则Writer会停止写入XML文件。

这是一个有效的例子:

int main() {

    AutoPtr<Document> pDoc = new Document;
    AutoPtr<Element> pRoot = pDoc->createElement("root");

    AutoPtr<Element> pElement = pDoc->createElement("Element");
    AutoPtr<Text> pText = pDoc->createTextNode("Example text");

    AutoPtr<Element> pElement1 = pDoc->createElement("Element1");
    AutoPtr<Text> pText2 = pDoc->createTextNode("Text with umlaut: Übermorgen gibt es Regen");

    AutoPtr<Element> pElement2 = pDoc->createElement("Element2");
    AutoPtr<Text> pText3 = pDoc->createTextNode("Text without");

    pElement->appendChild(pText);
    pElement1->appendChild(pText2);
    pElement2->appendChild(pText3);

    pRoot->appendChild(pElement);
    pRoot->appendChild(pElement1);
    pRoot->appendChild(pElement2);

    pDoc->appendChild(pRoot);


    DOMWriter writer;
    UTF8Encoding utf8Enc;
    writer.setNewLine("\n");
    writer.setEncoding("UTF-8", utf8Enc);
    writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT);
    writer.writeNode("D:\\test.xml", pDoc);

}

如果我调试此代码,pDoc变量包含我定义的整个XML结构。

但是在文件系统上,XML文件只包含这个:

<root>
    <Element>Example text</Element>
    <Element1>Text with umlaut:

第二个元素未完全写入,最后一个元素丢失。

如何配置DOMWriter以支持特殊键? XML应如下所示:

<root>
    <Element>Example text</Element>
    <Element1>Text with umlaut: Übermorgen gibt es Regen</Element1>
    <Element2>Text without</Element2>
</root>

0 个答案:

没有答案