XML文件中属性值
用单引号扣起来,属性值里有单引号
用双引号扣起来,属性值有双引号
如:
<Param name="""/>
<Param name='''/>
这样进行解析的时候就会出错,改如何解决呢。
以下是解析的部分代码:
//解析XML
bool CXML::ParseXMLText(CString xmlText,CTDATA &XML)
{MSXML2::IXMLDOMDocument2Ptr pDoc;MSXML2::IXMLDOMElementPtr pEle;
MSXML2::IXMLDOMNodeList *List;MSXML2::IXMLDOMNode *Node=NULL;
HRESULT hr;BSTR NodeName,Text;CString Name,NValue,VValue;long i,LN;
hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if(FAILED(hr))
{//AfxMessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
return false;}
pDoc->loadXML((_bstr_t)xmlText);
pEle=pDoc->GetdocumentElement();
pEle->get_childNodes(&List);
hr=List->get_length(&LN);XML.Res();程序挂在了这条语句上:pEle->get_childNodes(&List);
这个到底是怎么回事,如果是单引号包含双引号的值,或是双引号包含单引号的值都没问题
但是我想在单引号里包含单引号的值就会有问题,这个该如何解决呢?
备注:因为这个属性值是由用户自己输入的,所以可能会输入单引号或者双引号

解决方案 »

  1.   

    这种情况下,xml文件已经是无效的xml文件了,你用ie打开就会报错。备注:因为这个属性值是由用户自己输入的,所以可能会输入单引号或者双引号 
    ----------------
    用户直接去编辑xml文件? 如果这样的话就没有办法了。 只能给用户友情提示....
    如果用户输入之后你的程序还要处理的话就把特殊字符转义
      

  2.   

    望高手指点如何使用MSXMl向指定文件插入特殊字符如:&#960;,目的是使用MSXML向XML中插入Unicode码,是XML文件显示Unicode字符?十分感谢!