Poco :: DOMParser和wstring

时间:2014-06-03 06:19:18

标签: c++ xml xml-parsing poco-libraries wstring

有没有办法让Poco::DOMParserstd::wstring一起使用?

我使用定义的XML_UNICODEXML_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::wstringPoco::XML::DOMParser使用SAXParser来构建文档。所以我不知道为什么我不能将std :: wstring传递给parseString。

也许我不能使用parseString,但还有另一种方法可以用DOMParser解析std :: wstring吗?

1 个答案:

答案 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 issuefixed的开发分支中的问题现在为1.5.3 release