如何使用 Xerces 检查 XML 是否格式正确
How to check if XML is well formed with Xerces
我正在使用 Xerces C++ 库来解析 XML。我需要一个函数来确定输入的 XML 是否格式正确。 DOMConfiguration Interface
中提到了"well formed",但没有说明如何使用它。
到目前为止,我的代码是这样的。无论 XML 格式是否正确,它的工作原理都是一样的,但我需要知道它何时格式不正确。
try {
XMLPlatformUtils::Initialize();
// create the DOM parser
XercesDOMParser *parser = new XercesDOMParser;
parser->setValidationScheme(XercesDOMParser::Val_Never);
parser->parse(xml_input.c_str()); // where xml_input is my XML filename
// get the DOM representation
DOMDocument *doc = parser->getDocument();
// get the root element
DOMElement *root = doc->getDocumentElement();
}
catch ( DOMXPathException& e )
{
char* message = xercesc::XMLString::transcode( e.getMessage() );
cout << message << endl;
XMLString::release( &message );
}
您应该使用 WFXMLScanner 扫描仪仅执行格式正确性检查。 There are great examples 关于如何将特定扫描仪与 xerces 结合使用。
我正在使用 Xerces C++ 库来解析 XML。我需要一个函数来确定输入的 XML 是否格式正确。 DOMConfiguration Interface
中提到了"well formed",但没有说明如何使用它。
到目前为止,我的代码是这样的。无论 XML 格式是否正确,它的工作原理都是一样的,但我需要知道它何时格式不正确。
try {
XMLPlatformUtils::Initialize();
// create the DOM parser
XercesDOMParser *parser = new XercesDOMParser;
parser->setValidationScheme(XercesDOMParser::Val_Never);
parser->parse(xml_input.c_str()); // where xml_input is my XML filename
// get the DOM representation
DOMDocument *doc = parser->getDocument();
// get the root element
DOMElement *root = doc->getDocumentElement();
}
catch ( DOMXPathException& e )
{
char* message = xercesc::XMLString::transcode( e.getMessage() );
cout << message << endl;
XMLString::release( &message );
}
您应该使用 WFXMLScanner 扫描仪仅执行格式正确性检查。 There are great examples 关于如何将特定扫描仪与 xerces 结合使用。