|
우선 XML문서의 인코딩 방식이 어떤 것으로 되어 있는지 확인해 보세요.
영문일때는 코드가 같아서 상관이 없지만 한글이나 다른 확장문자(?)인 경우에는
텍스트 에디터에서는 한글이 정상적으로 보이더라도
utf-8인코딩으로 정의된 문서의 한글이 다른 인코딩 방식으로 되어있으면
파싱에서 에러가 납니다.
주로 많이 쓰이는게 utf-8이나 ecu-kr이니 문서의 인코딩을 바꿔서
브라우저에서 한번 로딩해 보시면 한글 인코딩 방식을 확인 할수 있으실겁니다.
텍스트 에디터중에 문서의 인코딩 형식을 바꿀수 있는 것들이 있습니다.
이런 에디터를 사용해서 확인 하셔도 됩니다.(UltraEdit)
질문 님이 쓰신 글 :
: TXMLDocument 컴포넌트를 이용하여 XML 파싱을 하려고 합니다.
: 잘안되네요.
:
: 일단 아래와 같이, 불러들였는데..
:
:
: XMLDocument1->LoadFromFile("d:\\TEST.XML");
: TreeView1->Items->Clear();
:
:
: void __fastcall TForm1::DomToTree(_di_IXMLNode XmlNode, TTreeNode *TreeNode)
: {
: TTreeNode *NewTreeNode;
: AnsiString NodeText;
: _di_IXMLNode AttrNode;
:
: if(XmlNode->NodeType != ntElement) {
: return;
: }
:
: NodeText = XmlNode->NodeName;
: if(XmlNode->IsTextElement) {
: NodeText = NodeText+"="+XmlNode->NodeValue;
: }
: NewTreeNode = TreeView1->Items->AddChild(TreeNode, NodeText);
:
: for(int i=0; i<XmlNode->AttributeNodes->Count; i++) {
: AttrNode = XmlNode->AttributeNodes->Nodes[i];
: AnsiString Temp = AttrNode->NodeName + "[ "+AttrNode->Text+" ]";
: TreeView1->Items->AddChild(NewTreeNode, Temp);
: }
:
: if(XmlNode->HasChildNodes) {
: for(int i=0; i<XmlNode->ChildNodes->Count-1; i++) {
: DomToTree(XmlNode->ChildNodes->Nodes[i], NewTreeNode);
: }
: }
: }
:
:
:
:
: 임펠리페리님 강좌를 참고해서 했는데 일반 XML? 은 잘 됩니다. 그러니까 영어로만 되있는경우는
: 잘되는데,
:
: 한글이 들어있는경우 (엘레멘트? 차일드 노드?)에는 파싱을 못하고 에러가 나네요.
: 한글 세팅을 어떻게 해줘야 하는지요
|