MSXML4를 사용하여 XML 파일을 작성하려고합니다. 보존해야하는 후미 공백이있는 데이터 요소가있는 경우를 제외하고는 정상적으로 작동합니다.후행 공백을 제거하는 XML
새로운 요소를 삽입하려면 다음 코드를 감안할 때 : 나는 "pNewChild-> 텍스트"를 선택하면 텍스트가 여전히 후행 공백이 포함
const _bstr_t k_Parent (ToBSTR("ParentNode"));
const _bstr_t k_Child (ToBSTR("ChildNode"));
const _bstr_t k_Data (ToBSTR("DataWithTrailingSpace "));
const _bstr_t k_Namespace (ToBSTR("TheNameSpace"));
MSXML2::IXMLDOMDocument2Ptr m_pXmlDoc;
m_pXmlDoc->async = VARIANT_FALSE;
m_pXmlDoc->validateOnParse = VARIANT_FALSE;
m_pXmlDoc->resolveExternals = VARIANT_FALSE;
m_pXmlDoc->preserveWhiteSpace = VARIANT_TRUE;
MSXML2::IXMLDOMNodePtr pElement = m_pXmlDoc->createNode(NODE_ELEMENT, k_Child, k_Namespace);
MSXML2::IXMLDOMNodePtr pParent = m_pXmlDoc->selectSingleNode(k_Parent);
pElement->put_text (k_Data);
MSXML2::IXMLDOMNodePtr pNewChild = pParent->appendChild(pElement);
합니다.
std::string xml (static_cast<std::string>(m_pXmlDoc->xml));
std::ofstream file("output.xml");
file << xml << std::endl;
file.flush();
file.close();
출력은 다음과 같습니다 :
대신 ("DataWithTrailingSpace"뒤에 여분의 공간에주의)의<ParentNode>
<ChildNode>DataWithTrailingSpace</ChildNode>
</ParentNode>
: 할 수 없습니다
<ParentNode>
<ChildNode>DataWithTrailingSpace </ChildNode>
</ParentNode>
그림 I는 파일에 기록 할 때 어떤 지점에서 후행 공간이 벗겨지고 있습니다.
누군가이 문제가 발생할 수있는 곳과 해결 방법에 대해 통찰력을 주시기 바랍니다.
작동하지 않습니다. 공간 데이터와 " "사이가 DataWithTrailingSpace : 나는 끝낼. –
TERACytE