目前我传递我的xml字符串作为整洁功能的输入。
string validateXml(const std::string &html)
{
// init a tidy document
TidyDoc tidy_doc=tidyCreate();
TidyBuffer output_buffer= {0};
// configure tidy
// the flags tell tidy to output xml and disable warnings
bool config_success=tidyOptSetBool(tidy_doc,TidyXmlOut,yes)
&& tidyOptSetBool(tidy_doc,TidyQuiet,yes)
&& tidyOptSetBool(tidy_doc,TidyNumEntities,yes)
&& tidyOptSetBool(tidy_doc,TidyShowWarnings,no);
int tidy_rescode=-1;
// parse input
if(config_success){
tidy_rescode=tidyParseString(tidy_doc,html.c_str());
}
// process html
if(tidy_rescode>=0){
tidy_rescode=tidySaveBuffer(tidy_doc,&output_buffer);
}
if(tidy_rescode<0){
throw("tidy has a error: "+tidy_rescode);
}
std::string result=(char *)output_buffer.bp;
tidyBufFree(&output_buffer);
tidyRelease(tidy_doc);
return result;
}
我只是想让它只验证那些需要的部分,而不提供完整的HTML结构。
还有如何隐藏在验证无效的xml字符串之前使用xmlParseMemory
获得的警告?
s = validateXml(s);
doc = xmlParseMemory(s.c_str(), s.length());
以上是无效的xml字符串,但是当我使用
时如何隐藏警告doc = xmlParseMemory(s.c_str(), s.length());
s = validateXml(s);