有没有办法让Poco::DOMParser
与std::wstring
一起使用?
我使用定义的XML_UNICODE
和XML_UNICODE_WCHAR_T
构建pocoXML lib。现在
我正在尝试编译这样的代码:
Poco::XML::DOMParser parser;
std::wstring xml = getXml(); //Init string with xml document
// Cannot compile, cause parseString wants only std::string
// not wstring
Poco::AutoPtr<Poco::XML::Document> document = parser.parseString(xml);
Poco::XML::SaxParser
可以解析std::wstring
和Poco::XML::DOMParser
使用SAXParser来构建文档。所以我不知道为什么我不能将std :: wstring传递给parseString。
也许我不能使用parseString,但还有另一种方法可以用DOMParser解析std :: wstring吗?
答案 0 :(得分:1)
您应该能够在Windows上使用std :: wstring,并且只定义了XML_UNICODE_WCHAR_T
。在POSIX平台上,您必须确保wchar_t是2个字节宽(检查__SIZEOF_WCHAR_T__
define)。使用XMLString是一种很好的做法,XMLString是基于std::basic_string
define从XML_UNICODE_WCHAR_T
中适当定义的。
但是有一个问题阻止了使用XML_UNICODE_WCHAR_T
进行Poco :: XML编译。已创建Github issue,fixed的开发分支中的问题现在为1.5.3 release。