0

MSXML4を使用してXMLを生成しています。

エンコード値をUTF-8に設定しようとしています。

これが私のコードです:

const _bstr_t k_XML_Tag_Name ("xml");
const _bstr_t k_Processing_Tag_Name ("version=\"1.0\" encoding=\"utf-8\"");

MSXML2::IXMLDOMProcessingInstructionPtr pProccessingInstruction = m_pXmlDoc->createProcessingInstruction(k_XML_Tag_Name, k_Processing_Tag_Name);

HRESULT result = m_pXmlDoc->appendChild(pProccessingInstruction);

resultは常にS_FALSEであり、前処理文字列は次のとおりです。

<?xml version="1.0"?>

では、なぜエンコーディング文字列が表示されないのですか?

4

1 に答える 1

1

xmlをファイルに保存すると、<?xml version="1.0" encoding="UTF-8"?>宣言が表示されます。ただし、この記事によると、ドキュメントのプロパティを使用するXMLと、返される宣言にエンコーディングが含まれていません。これは仕様によるものと思われます。これはあなたが遭遇している行動ですか?記事には次のように記載されています。

これは正常です。これを行った理由は、この文字列を使用してLoadXMLを呼び出し、機能させるためです。これを行わないと、LoadXMLは次のエラーメッセージで失敗します:「現在のエンコーディングから指定されたエンコーディングへの切り替えはサポートされていません。」

于 2010-08-27T20:28:58.197 に答える