私はxerces-cで解析されたXML文書を持っており、DOMPrintの例のようなファイルに正常に書き込むことができますが、これを配列に格納することはできません。私はまだシリアライザを使うべきだとオンラインで見ていますが、私は何を変えるべきか分かりません。明らかに、LocalFileFormatTargetを使用する代わりに、私は別のものを使うべきですが、MemBufFormatTargetのリファレンスをオンラインで見れば、それを使う方法が分かりません。 xerces-cを使用してxmlドキュメントを文字列に変換するにはどうすればよいですか?DOMDocument to string xerces-c
3
A
答えて
3
文字のバッファに出力を得るために、このようなXMLFormatTargetクラスを使用します。
class LStringXMLFormatTarget : public XMLFormatTarget
{
public:
LStringXMLFormatTarget()
{
m_pBuffer = NULL;
m_nTotal = 0;
}
char* GetBuffer()
{
return m_pBuffer;
}
ULONG GetLength()
{
return m_nTotal;
}
virtual void writeChars(const XMLByte* const toWrite, const XMLSize_t count, XMLFormatter* const formatter)
{
if(toWrite)
{
char* pTmp = new char[m_nTotal + count + 1];
if(m_pBuffer)
{
memcpy(pTmp, m_pBuffer, m_nTotal);
delete m_pBuffer;
}
memcpy(&pTmp[m_nTotal], toWrite, count);
m_nTotal += count;
m_pBuffer = pTmp;
if(m_pBuffer)
m_pBuffer[m_nTotal] = 0;
}
}
protected:
char* m_pBuffer;
ULONG m_nTotal;
};
出力エンコーディングもマルチで構成する可能性があるため、これは意図して単一文字のバッファであることに注意してくださいバイト文字。
DOMLSOutputとDOMLSSerializerオブジェクトと一緒に使用します。
DOMLSOutput* pLSOutput = impl->createLSOutput();
if(pLSOutput)
{
pLSOutput->setByteStream(&stringTarget);
pSerializer->write(doc, pLSOutput);
}
P.S.をwriteChars()をより効率的に実装するために、常に新しいバッファをコピーして割り当てないでください。代わりに、いくつかのメモリチャンクの前に十分な大きさのメモリブロックを予約することができます。 XMLFormatTargetのしくみ
関連する問題
- 1. XERCESC 2.7メモリリークの問題
- 2. Base64 String to Json String
- 3. String to ArrayList <String>
- 4. c#string [] to jquery string list?
- 5. Image to Base64 String to JSONオブジェクト
- 6. Java - String to StringReader
- 7. JSONResult to String
- 8. java.lang.ClassCastException String to JavaPoet.FieldSpec
- 9. DataSet.WriteXml to string
- 10. DatagramPacket to string
- 11. 'System :: String ^' to 'LPCWSTR'
- 12. JSX Emoji to string
- 13. PHPExcel String to Time
- 14. String to Color Xamarin.Form
- 15. Haxe Int to String
- 16. char * to std :: string
- 17. std :: string to LPCTSTR
- 18. String to WritableKeyPath
- 19. Groovy String to Long
- 20. MSSQL guid to string
- 21. String to nodeエラー
- 22. HttpResponse to String android
- 23. String to ArrayList
- 24. var_export to string
- 25. Java String to Type
- 26. Haskell IntList to String
- 27. アプリエンジン:string to datetime?
- 28. Regex to Variable String
- 29. RegEx to full string
- 30. NSNumberFormatter:Double to string