C++에서 libxml2에 대한 작은 래퍼를 작성하고 있으며 오류를 처리하는 방법을 찾으려고합니다. 지금은 그냥 인쇄하고 싶다고 가정 해 봅시다. 여기에 내가 현재 가지고있는 작업은 다음과 같습니다libxml2 오류 처리
내 오류 처리 기능 :
void foo(void *ctx, const char *msg, ...) {
cout << msg << endl;
return;
}
은 다음과 같이 초기화 :
xmlGenericErrorFunc handler = (xmlGenericErrorFunc)foo;
initGenericErrorDefaultFunc(&handler);
그러나, 나는 나쁜 XPath를 분석 할 경우, 나는이 출력을 얻을 : 오류 처리 코드없이
%s
,이 얻을 :
XPath error : Invalid expression //[email protected] ^
분명히 결국 내 오류 처리가 바로 오류 메시지를 출력보다 더 많은 일을 할 것입니다 (이것은 데이터베이스 또는 무언가에 로그인 할 수 있습니다)하지만 지금은 - 내가 어떻게 그 오류 문자열을 얻을 수 있나요?
거의 다 도착했습니다. "유효하지 않은 표현"이 표시되지만 나머지는 표시되지 않습니다. –
그게 아마 모든 메시지에 담겨있을 것입니다. 여러분은 단지 msg를 인쇄했을 때 % s를 가지고 있다고 말했습니다. foo()에 주어진 인수가 하나 더 있고 인쇄 할 문자열이라는 것을 나타냅니다. 아마 여기 정보가 도움이 될까요? http://xmlsoft.org/html/libxml-xmlerror.html#xmlGenericErrorFunc – Puppe
@Puppe - 그건 의미가 있습니다. 안타깝게도 문서는'xmlGenericErrorFunc'에 전달되는 것에 대한 모든 내용을 담고 있지는 않습니다. 네가 가진 것은 내 목적을 위해 충분하다. 감사! –