错误提示:名称以无效字符开头。处理资源 'file:///G:/myfile.xml' 时出错。第 5 行,位置: 2 <20tpo>XMLi</20tpo>
-^以数字开头的标识名称,那款软件能读,我为啥不能?

解决方案 »

  1.   

    问题是XML好像不支持数字的。你可以用IE打开下,好像也是打不开的。我以前也遇过,后来只好自己写解析的了。
      

  2.   

    是BCB的,凑合着看Form文件:object frmTestMain: TfrmTestMain
      Left = 80
      Top = 168
      Width = 785
      Height = 480
      Caption = 'XML转换测试'
      Color = clBtnFace
      Font.Charset = GB2312_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = '新宋体'
      Font.Style = []
      OldCreateOrder = False
      DesignSize = (
        777
        453)
      PixelsPerInch = 96
      TextHeight = 13
      object lblPrefix: TLabel
        Left = 102
        Top = 16
        Width = 28
        Height = 13
        Caption = '前缀'
      end
      object edPrefix: TEdit
        Left = 134
        Top = 12
        Width = 97
        Height = 21
        TabOrder = 0
        Text = 'XCati_'
      end
      object btnOpen: TButton
        Left = 8
        Top = 9
        Width = 75
        Height = 26
        Caption = '打开文件'
        TabOrder = 1
        OnClick = btnOpenClick
      end
      object btnPreproc: TButton
        Left = 254
        Top = 10
        Width = 75
        Height = 25
        Caption = '预处理'
        TabOrder = 2
        OnClick = btnPreprocClick
      end
      object btnShowBeta: TButton
        Left = 438
        Top = 10
        Width = 75
        Height = 25
        Caption = '中间结果'
        TabOrder = 3
        OnClick = btnShowBetaClick
      end
      object btnShowResult: TButton
        Left = 638
        Top = 10
        Width = 75
        Height = 25
        Caption = '显示结果'
        TabOrder = 4
        OnClick = btnShowResultClick
      end
      object mmOrigiFile: TMemo
        Left = 8
        Top = 48
        Width = 185
        Height = 401
        Anchors = [akLeft, akTop, akBottom]
        ScrollBars = ssBoth
        TabOrder = 5
      end
      object mmPrefixed: TMemo
        Left = 200
        Top = 48
        Width = 185
        Height = 401
        Anchors = [akLeft, akTop, akBottom]
        ScrollBars = ssBoth
        TabOrder = 6
      end
      object tvBeta: TTreeView
        Left = 392
        Top = 48
        Width = 185
        Height = 401
        Indent = 19
        TabOrder = 7
      end
      object tvResult: TTreeView
        Left = 584
        Top = 48
        Width = 185
        Height = 401
        Indent = 19
        TabOrder = 8
      end
      object xmlCatiFile: TXMLDocument
        FileName = 'C:\Documents and Settings\Administrator\桌面\a.xml'
        Left = 382
        Top = 8
        DOMVendorDesc = 'MSXML'
      end
      object dlgOpenCatiFile: TOpenDialog
        Filter = 'XML文档      (*.xml)|*.xml|所有文档     (*.*)|*.*'
        Left = 342
        Top = 8
      end
    end
      

  3.   

    头文件:
    //---------------------------------------------------------------------------#ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Dialogs.hpp>
    #include <msxmldom.hpp>
    #include <XMLDoc.hpp>
    #include <xmldom.hpp>
    #include <XMLIntf.hpp>
    #include <ComCtrls.hpp>
    //---------------------------------------------------------------------------
    class TfrmTestMain : public TForm
    {
    __published: // IDE-managed Components
        TXMLDocument *xmlCatiFile;
        TOpenDialog *dlgOpenCatiFile;
        TEdit *edPrefix;
        TLabel *lblPrefix;
        TButton *btnOpen;
        TButton *btnPreproc;
        TButton *btnShowBeta;
        TButton *btnShowResult;
        TMemo *mmOrigiFile;
        TMemo *mmPrefixed;
        TTreeView *tvBeta;
        TTreeView *tvResult;
        void __fastcall btnOpenClick(TObject *Sender);
        void __fastcall btnPreprocClick(TObject *Sender);
        void __fastcall btnShowBetaClick(TObject *Sender);
        void __fastcall btnShowResultClick(TObject *Sender);
    private: // User declarations
    public: // User declarations
        __fastcall TfrmTestMain(TComponent* Owner);
        void __fastcall  XMLtoTree(IXMLNode* XMLNode, TTreeNode* TreeNode);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TfrmTestMain *frmTestMain;
    //---------------------------------------------------------------------------
    #endif
      

  4.   

    代码:
    //---------------------------------------------------------------------------#include <vcl.h>
    #pragma hdrstop#include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TfrmTestMain *frmTestMain;
    //---------------------------------------------------------------------------
    __fastcall TfrmTestMain::TfrmTestMain(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------void __fastcall TfrmTestMain::btnOpenClick(TObject *Sender)
    {
        // 打开指定 XML 文档
        if(dlgOpenCatiFile->Execute() == true)
        {
            mmOrigiFile->Lines->LoadFromFile(dlgOpenCatiFile->FileName);
        }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmTestMain::btnPreprocClick(TObject *Sender)
    {
        // 将 "<" 替换为 "<Prefix", 将 "</" 替换为 "</Prefix"
        int i, pos;
        AnsiString strSrc, strDes;    mmPrefixed->Lines->Clear();
        mmPrefixed->Lines->BeginUpdate();    // 对每一行
        for(i = 0; i < mmOrigiFile->Lines->Count; i++)
        {
            strSrc = mmOrigiFile->Lines->Strings[i];
            strDes = "";        for(pos = 1; pos <= strSrc.Length(); pos++)
            {
                // 查找 '<' 进行处理
                if(strSrc[pos] == '<')  // 找到 '<'
                {
                    if(strSrc[pos+1] == '/')    // 是 "</", 处理
                    {
                        strDes = strDes + "</"+Trim(edPrefix->Text);
                        pos++;
                    }
                    else
                    if(strSrc[pos+1] == '?')    // 是 XML 头, 拷贝之
                    {
                        strDes = strDes + strSrc[pos];
                    }
                    else                        // 是 "<", 处理
                    {
                        strDes = strDes + "<"+Trim(edPrefix->Text);
                    }
                }
                else    // 一般字符, 拷贝之
                {
                    strDes = strDes + strSrc[pos];
                }
            }
            mmPrefixed->Lines->Add(strDes);
        }    mmPrefixed->Lines->EndUpdate();}
    //---------------------------------------------------------------------------
    void __fastcall TfrmTestMain::btnShowBetaClick(TObject *Sender)
    {
        xmlCatiFile->XML->Assign(mmPrefixed->Lines);
        xmlCatiFile->Active = true;    tvBeta->Items->BeginUpdate();
        tvBeta->Items->Clear();    // 数据到TreeView
        XMLtoTree(xmlCatiFile->DocumentElement, tvBeta->TopItem);    tvBeta->Items->EndUpdate();
        xmlCatiFile->Active = false;}
    //---------------------------------------------------------------------------
    void __fastcall  TfrmTestMain::XMLtoTree(IXMLNode* XMLNode, TTreeNode* TreeNode)
    {
        int i;
        TTreeNode* NewNode;
        AnsiString str;    str = "";    str = XMLNode->LocalName;    // 没有下级分类,取值
        if(!XMLNode->HasChildNodes)
        {
            str = Trim(str + ' ' + XMLNode->NodeValue);
        }    // 有内容,加入TreeView
        if(!str.IsEmpty())
        {
            NewNode = tvBeta->Items->AddChild(TreeNode, str);
        }    // 在新加 TreeView 项下继续增加新节点
        for(i = 0; i < XMLNode->ChildNodes->Count; i++)
        {
            XMLtoTree(XMLNode->ChildNodes->Nodes[i], NewNode);
        }
    }
    void __fastcall TfrmTestMain::btnShowResultClick(TObject *Sender)
    {
        // 去掉预处理中的前缀,略...    
    }
    //---------------------------------------------------------------------------
      

  5.   

    xml文件:
    <?xml version = "1.0" encoding="GB2312" ?>
    <block>
    <板块股>
    <指数板块>
            <50板块>zsbk.ini</50板块>
    <100板块>zsbk.ini</100板块>
    <180板块>zsbk.ini</180板块>
            <上证红利>zsbk.ini</上证红利>
    <成份股>zsbk.ini</成份股>
    <成份B股>zsbk.ini</成份B股>
    <沪深300>zsbk.ini</沪深300>
    <中证100>zsbk.ini</中证100>
    <中证200>zsbk.ini</中证200>
    <中证小康>zsbk.ini</中证小康>
    <中标50>zsbk.ini</中标50>
    <中信科技>zsbk.ini</中信科技>
    <中信大盘>zsbk.ini</中信大盘>
    <中信价值>zsbk.ini</中信价值>
    <中信成长>zsbk.ini</中信成长>
    <新富50>zsbk.ini</新富50>
            <新富200>zsbk.ini</新富200>
    <道琼斯88>zsbk.ini</道琼斯88>
    </指数板块>
    <行业板块>   
    <传播文化>hybk.ini</传播文化>
    <电器机械>hybk.ini</电器机械>
    <房地产业>hybk.ini</房地产业>
       <纺织服装>hybk.ini</纺织服装>
    <黑色金属>hybk.ini</黑色金属>
    <化学制品>hybk.ini</化学制品>
    <交运仓储>hybk.ini</交运仓储>
    <交运设备>hybk.ini</交运设备>
    <金融保险>hybk.ini</金融保险>
    <金属制品>hybk.ini</金属制品>
    <木材家具>hybk.ini</木材家具>
    <农林牧渔>hybk.ini</农林牧渔>
    <批零贸易>hybk.ini</批零贸易>
    <普通机械>hybk.ini</普通机械>
    <其他制造>hybk.ini</其他制造>
    <社会服务>hybk.ini</社会服务>
    <石化炼焦>hybk.ini</石化炼焦>
    <食品饮料>hybk.ini</食品饮料>
    <食品制造>hybk.ini</食品制造>
    <水电煤气>hybk.ini</水电煤气>
    <橡塑制品>hybk.ini</橡塑制品>
    <信息技术>hybk.ini</信息技术>
    <医药生物>hybk.ini</医药生物>
    <仪器仪表>hybk.ini</仪器仪表>
    <有色金属>hybk.ini</有色金属>
    <造纸印刷>hybk.ini</造纸印刷>
    <专用设备>hybk.ini</专用设备>
    <采掘业>hybk.ini</采掘业>
    <非金属>hybk.ini</非金属>
    <建筑业>hybk.ini</建筑业>
    <综合类>hybk.ini</综合类>
    <电子>hybk.ini</电子>
    </行业板块>
    <地域板块>
       <安徽板块>dybk.ini</安徽板块>
    <北京板块>dybk.ini</北京板块>
    <重庆板块>dybk.ini</重庆板块>
    <福建板块>dybk.ini</福建板块>
    <甘肃板块>dybk.ini</甘肃板块>
    <广东板块>dybk.ini</广东板块>
    <广西板块>dybk.ini</广西板块>
    <贵州板块>dybk.ini</贵州板块>
    <海南板块>dybk.ini</海南板块>
    <河北板块>dybk.ini</河北板块>
    <河南板块>dybk.ini</河南板块>
    <湖北板块>dybk.ini</湖北板块>
    <湖南板块>dybk.ini</湖南板块>
    <吉林板块>dybk.ini</吉林板块>
    <江苏板块>dybk.ini</江苏板块>
    <江西板块>dybk.ini</江西板块>
    <辽宁板块>dybk.ini</辽宁板块>
    <宁夏板块>dybk.ini</宁夏板块>
    <青海板块>dybk.ini</青海板块>
    <山东板块>dybk.ini</山东板块>
    <山西板块>dybk.ini</山西板块>
    <陕西板块>dybk.ini</陕西板块>
    <上海板块>dybk.ini</上海板块>
    <四川板块>dybk.ini</四川板块>
    <天津板块>dybk.ini</天津板块>
    <西藏板块>dybk.ini</西藏板块>
    <新疆板块>dybk.ini</新疆板块>
    <云南板块>dybk.ini</云南板块>
    <浙江板块>dybk.ini</浙江板块>
    <内蒙古>dybk.ini</内蒙古>
    <黑龙江>dybk.ini</黑龙江>
    </地域板块>
    <概念板块>
            <风力发电>gnbk.ini</风力发电>
    <ST板块>gnbk.ini</ST板块>
    <CDM概念>gnbk.ini</CDM概念>
            <金融参股>gnbk.ini</金融参股>
            <参股券商>gnbk.ini</参股券商>
    <创投概念>gnbk.ini</创投概念>
    <电力设备>gnbk.ini</电力设备>
    <抗禽流感>gnbk.ini</抗禽流感>
    <硅产业股>gnbk.ini</硅产业股>
    <航空航天>gnbk.ini</航空航天>
    <环保概念>gnbk.ini</环保概念>
    <军工概念>gnbk.ini</军工概念>
    <循环经济>gnbk.ini</循环经济>
    <3G概念>gnbk.ini</3G概念>
    <世博概念>gnbk.ini</世博概念>
    <自主创新>gnbk.ini</自主创新>
    <数字家电>gnbk.ini</数字家电>
    <通信设备>gnbk.ini</通信设备>
    <外资并购>gnbk.ini</外资并购>
    <股权投资>gnbk.ini</股权投资>
    <B股板块>gnbk.ini</B股板块>
    <有线网络>gnbk.ini</有线网络>
    <新能源>gnbk.ini</新能源>
    <光通信>gnbk.ini</光通信>
    <旅游业>gnbk.ini</旅游业>
    <新材料>gnbk.ini</新材料>
    <微电子>gnbk.ini</微电子>
    <H股板块>gnbk.ini</H股板块>
    <汽车板块>gnbk.ini</汽车板块>
    <金融板块>gnbk.ini</金融板块>
    <房地产>gnbk.ini</房地产>
    <OTC医药>gnbk.ini</OTC医药>
            <长三角>gnbk.ini</长三角>
    </概念板块>
     <热点板块>
    <油价受益>rdbk.ini</油价受益>
    <期货概念>rdbk.ini</期货概念>
    <手足口病>rdbk.ini</手足口病>
    <央企控股>rdbk.ini</央企控股>
    <节能减排>rdbk.ini</节能减排>
    <创新试点>rdbk.ini</创新试点>
    <装备制造>rdbk.ini</装备制造>
    <资产注入>rdbk.ini</资产注入>
    <QFII板块>rdbk.ini</QFII板块>
    <垄断资源>rdbk.ini</垄断资源>
    <未股改>rdbk.ini</未股改>
    <高净收率>rdbk.ini</高净收率>
    <股东减少>rdbk.ini</股东减少>
    <基金增仓>rdbk.ini</基金增仓>
    <基金重仓>rdbk.ini</基金重仓>
    <两税合并>rdbk.ini</两税合并>
    <世博概念>rdbk.ini</世博概念>
    </热点板块>
    <港股板块>
    <主板H股>ggbk.ini</主板H股>
    <创业H股>ggbk.ini</创业H股>
    <主板红筹>ggbk.ini</主板红筹>
    <创业红筹>ggbk.ini</创业红筹>
    <恒指成份>ggbk.ini</恒指成份>
    </港股板块>
    <港指成份>
    <恒指成份>hkzs.ini</恒指成份>
    <金融分类>hkzs.ini</金融分类>
    <公用分类>hkzs.ini</公用分类>
    <地产分类>hkzs.ini</地产分类>
    <工商分类>hkzs.ini</工商分类>
    <国企成份>hkzs.ini</国企成份>
    <恒综成份>hkzs.ini</恒综成份>
    <港综成份>hkzs.ini</港综成份>
    <恒大成份>hkzs.ini</恒大成份>
    <恒中成份>hkzs.ini</恒中成份>
    <恒小成份>hkzs.ini</恒小成份>
    <内地成份>hkzs.ini</内地成份>
    <红筹成份>hkzs.ini</红筹成份>
    <能源成份>hkzs.ini</能源成份>
    <原料成份>hkzs.ini</原料成份>
    <电讯成份>hkzs.ini</电讯成份>
    <工业成份>hkzs.ini</工业成份>
    <消费成份>hkzs.ini</消费成份>
    <服务成份>hkzs.ini</服务成份>
    <公用成份>hkzs.ini</公用成份>
    <金融成份>hkzs.ini</金融成份>
    <地产成份>hkzs.ini</地产成份>
    <资讯成份>hkzs.ini</资讯成份>
    <综企成份>hkzs.ini</综企成份>
    <恒50成份>hkzs.ini</恒50成份>
    <港25成份>hkzs.ini</港25成份>
    <内25成份>hkzs.ini</内25成份>
    <大型成份>hkzs.ini</大型成份>
    <创业成份>hkzs.ini</创业成份>
    </港指成份>
    <咨询厂商>
    <港澳中线>sysblk.ini</港澳中线>
    <港澳点评>sysblk.ini</港澳点评>
    </咨询厂商>
    </板块股>
    </block>