本文整理汇总了C++中Xml::IsValid方法的典型用法代码示例。如果您正苦于以下问题:C++ Xml::IsValid方法的具体用法?C++ Xml::IsValid怎么用?C++ Xml::IsValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xml
的用法示例。
在下文中一共展示了Xml::IsValid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetType
Format* GetType(void* file_pointer, size_t file_size, const string& filename) {
if (depth > max_depth)
return new Format(file_pointer, file_size);
if (!filename.empty()) {
size_t dot = filename.find_last_of('.');
if (dot != string::npos) {
string ext = filename.substr(dot + 1);
// toupper
for (auto& c : ext)
c &= ~0x20;
if (ext == "HTML" || ext == "HTM" || ext == "JS" || ext == "CSS") {
VerbosePrint(ext, " detected.");
return new DataURI(file_pointer, file_size);
}
if (ext == "VCF" || ext == "VCARD") {
VerbosePrint(ext, " detected.");
return new Vcf(file_pointer, file_size);
}
if (ext == "MHT" || ext == "MHTML" || ext == "MIM" || ext == "MIME" || ext == "EML") {
VerbosePrint(ext, " detected.");
return new Mime(file_pointer, file_size);
}
}
}
if (memcmp(file_pointer, Png::header_magic, sizeof(Png::header_magic)) == 0) {
VerbosePrint("PNG detected.");
return new Png(file_pointer, file_size);
} else if (memcmp(file_pointer, Jpeg::header_magic, sizeof(Jpeg::header_magic)) == 0) {
VerbosePrint("JPEG detected.");
return new Jpeg(file_pointer, file_size);
} else if (memcmp(file_pointer, Lua::header_magic, sizeof(Lua::header_magic)) == 0) {
VerbosePrint("Lua detected.");
return new Lua(file_pointer, file_size);
} else if (memcmp(file_pointer, Zip::header_magic, sizeof(Zip::header_magic)) == 0) {
VerbosePrint("ZIP detected.");
return new Zip(file_pointer, file_size);
} else if (memcmp(file_pointer, Pe::header_magic, sizeof(Pe::header_magic)) == 0) {
VerbosePrint("PE detected.");
return new Pe(file_pointer, file_size);
} else if (memcmp(file_pointer, Gz::header_magic, sizeof(Gz::header_magic)) == 0) {
VerbosePrint("GZ detected.");
return new Gz(file_pointer, file_size);
} else if (memcmp(file_pointer, Ico::header_magic, sizeof(Ico::header_magic)) == 0) {
VerbosePrint("ICO detected.");
return new Ico(file_pointer, file_size);
} else if (memcmp(file_pointer, Dwf::header_magic, sizeof(Dwf::header_magic)) == 0) {
VerbosePrint("DWF detected.");
return new Dwf(file_pointer, file_size);
} else if (memcmp(file_pointer, Gft::header_magic, sizeof(Gft::header_magic)) == 0) {
VerbosePrint("GFT detected.");
return new Gft(file_pointer, file_size);
} else if (memcmp(file_pointer, Rdb::header_magic, sizeof(Rdb::header_magic)) == 0) {
VerbosePrint("RDB detected.");
return new Rdb(file_pointer, file_size);
} else if (memcmp(file_pointer, Swf::header_magic, sizeof(Swf::header_magic)) == 0 ||
memcmp(file_pointer, Swf::header_magic_deflate, sizeof(Swf::header_magic_deflate)) == 0 ||
memcmp(file_pointer, Swf::header_magic_lzma, sizeof(Swf::header_magic_lzma)) == 0) {
VerbosePrint("SWF detected.");
return new Swf(file_pointer, file_size);
} else {
// Search for vcard magic which might not be at the very beginning.
const string vcard_magic = "BEGIN:VCARD";
const char* fp = static_cast<char*>(file_pointer);
const char* search_end = fp + std::min(static_cast<size_t>(1024), file_size);
if (std::search(fp, search_end, vcard_magic.begin(), vcard_magic.end()) < search_end) {
VerbosePrint("VCF detected.");
return new Vcf(file_pointer, file_size);
}
// tar file does not have header magic
// ustar is optional
{
Tar* t = new Tar(file_pointer, file_size);
// checking first record checksum
if (t->IsValid()) {
VerbosePrint("tar detected.");
return t;
}
delete t;
}
// XML file does not have header magic
// have to parse and see if there are any errors.
{
Xml* x = new Xml(file_pointer, file_size);
if (x->IsValid()) {
VerbosePrint("XML detected.");
return x;
}
delete x;
}
}
VerbosePrint("Format not supported!");
// for unsupported format, just memmove it.
return new Format(file_pointer, file_size);
}
示例2: Format
//.........这里部分代码省略.........
}
else if (memcmp(file_pointer, Pe::header_magic, sizeof(Pe::header_magic)) == 0)
{
if (is_verbose)
{
cout << "PE detected." << endl;
}
return new Pe(file_pointer, file_size);
}
else if (memcmp(file_pointer, Gz::header_magic, sizeof(Gz::header_magic)) == 0)
{
if (is_verbose)
{
cout << "GZ detected." << endl;
}
return new Gz(file_pointer, file_size);
}
else if (memcmp(file_pointer, Ico::header_magic, sizeof(Ico::header_magic)) == 0)
{
if (is_verbose)
{
cout << "ICO detected." << endl;
}
return new Ico(file_pointer, file_size);
}
else if (memcmp(file_pointer, Dwf::header_magic, sizeof(Dwf::header_magic)) == 0)
{
if (is_verbose)
{
cout << "DWF detected." << endl;
}
return new Dwf(file_pointer, file_size);
}
else if (memcmp(file_pointer, Gft::header_magic, sizeof(Gft::header_magic)) == 0)
{
if (is_verbose)
{
cout << "GFT detected." << endl;
}
return new Gft(file_pointer, file_size);
}
else if (memcmp(file_pointer, Rdb::header_magic, sizeof(Rdb::header_magic)) == 0)
{
if (is_verbose)
{
cout << "RDB detected." << endl;
}
return new Rdb(file_pointer, file_size);
}
else if (memcmp(file_pointer, Swf::header_magic, sizeof(Swf::header_magic)) == 0 ||
memcmp(file_pointer, Swf::header_magic_deflate, sizeof(Swf::header_magic_deflate)) == 0 ||
memcmp(file_pointer, Swf::header_magic_lzma, sizeof(Swf::header_magic_lzma)) == 0)
{
if (is_verbose)
{
cout << "SWF detected." << endl;
}
return new Swf(file_pointer, file_size);
}
else
{
// tar file does not have header magic
// ustar is optional
{
Tar *t = new Tar(file_pointer, file_size);
// checking first record checksum
if (t->IsValid())
{
if (is_verbose)
{
cout << "tar detected." << endl;
}
return t;
}
delete t;
}
// XML file does not have header magic
// have to parse and see if there are any errors.
{
Xml *x = new Xml(file_pointer, file_size);
if (x->IsValid())
{
if (is_verbose)
{
cout << "XML detected." << endl;
}
return x;
}
delete x;
}
}
if (is_verbose)
{
cout << "Format not supported!" << endl;
}
// for unsupported format, just memmove it.
return new Format(file_pointer, file_size);
}