私はIXMLDOMDocument::transformNode
、次のように少し見えるC++コードを使用してXSLT変換を適用するために使用しています。
CComPtr<IXMLDOMDocument2> spXMLDoc;
// load spXMLDoc
CComPtr<IXMLDOMDocument2> spXSLDoc;
// load spXSLDoc
BSTR *pResult;
HRESULT hr = spXMLDoc->transformNode( spXSLDoc, pResult );
if (FAILED(hr))
{
// Handle me
}
このコードは機能しますが、変換が失敗した場合、どこで、またはなぜ失敗したかについての情報を取得する方法がわかりません-現時点では、HRESULTが失敗した(複数のインクルードを持つ複雑なXSLTで)失敗E_FAIL
はありますか?なぜ失敗するのかについて、もう少し詳しく知ることができますか?
parseError
エラーの詳細を取得するために、プロパティをすでに試しました。
IXMLDOMParseError *parseError = NULL;
hr = spXMLDoc->get_parseError(&parseError);
if ( !FAILED( hr ) )
{
long errorCode = 0;
hr = parseError->get_errorCode(&errorCode);
// etc...
の呼び出しはget_parseError
成功しますが、の呼び出しget_errorCode
はHRESULTS_FALSE
で失敗し、解析エラーがなかったことを示します。 このページでは、エラーには解析エラーと実行時エラーの2種類があることがわかります。両方を処理する方法を示していますが、JavaScript指向のようです。私の場合、C++ランタイムエラーはスローされません。