|
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? 은 잘 됩니다. 그러니까 영어로만 되있는경우는
잘되는데,
한글이 들어있는경우 (엘레멘트? 차일드 노드?)에는 파싱을 못하고 에러가 나네요.
한글 세팅을 어떻게 해줘야 하는지요
|