以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  vc中打开,保存 xml 时 碰到doctype 有关得问题,救命阿。。。。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=24573)


--  作者:绝不潜水得鱼
--  发布时间:11/22/2005 11:29:00 PM

--  vc中打开,保存 xml 时 碰到doctype 有关得问题,救命阿。。。。
在用vc 时碰到了包含有 <!DOCTYPE ......> 得xml 文件 ,就会解析失败,什么节点都找不到,不知道是什么原因,不知道是要设置什么属性,另外 我得 dtd 文件也在同目录下面。。。。。用ie 可以打开,望各位大侠解救!!!
--  作者:绝不潜水得鱼
--  发布时间:11/23/2005 10:55:00 PM

--  
我晕,这个 论坛没有 人回答问题吗?我把 dtd 路径都指定好了,怎么还是不能解析阿,企盼哪位老大能 给个回答。。。。。
--  作者:liuzhidan
--  发布时间:11/25/2005 6:35:00 PM

--  
你的路径怎么引的?
<!DOCTYPE ...... “”  “”/〉 ?
--  作者:绝不潜水得鱼
--  发布时间:11/30/2005 10:20:00 PM

--  
to 楼上的 我把文档 的 validateOnParse 设为false 后 然后 采用 load 发现不行,但是采用loadxml 又可以。你说的路径类似这样:<!DOCTYPE test SYSTEM "d:\test.dtd">。谢谢你的回答,望能再指教!!

--  作者:liuzhidan
--  发布时间:12/1/2005 5:24:00 PM

--  
文档 的 validateOnParse 设为false 后,表示文件是无效的,并被认为只是标准格式的(well-formed)文件。
<!DOCTYPE test SYSTEM "file\\d:\test.dtd"> 看下~!
在解析之前确保你的文件是有效的~! 要符合DTD
--  作者:liuzhidan
--  发布时间:12/1/2005 5:26:00 PM

--  
我曾经也碰到过不能解析的情况, 我的是因为xml中有特殊字符
--  作者:绝不潜水得鱼
--  发布时间:12/1/2005 8:43:00 PM

--  
我程序中的 写法大致是这样:
MSXML::IXMLDOMDocumentPtr pDoc;      
   MSXML::IXMLDOMElementPtr  xmlRoot ;
   //MSXML::IXMLDOMDocumentTypePtr xmlDoc;
   //xmlDoc->raw_
   //创建DOMDocument对象       
   HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));    
   if(!SUCCEEDED(hr))         
   {                                  
   MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");     
   }
  // pDoc->validateOnParse=_variant_t(false);  
  pDoc->load(_bstr_t("d:\\2.xml"));
  /* CString str,str1,str3;
   str.Format("<?xml version=\"1.0\"?><");
   str1.Format("!DOCTYPE test SYSTEM \"d:\\test.dtd\">");
  str3.Format("<aa/>");
   str=str+str1;
  str=str+str3;
   pDoc->loadXML(_bstr_t(str));
   */
  
    MSXML::IXMLDOMParseErrorPtr errPtr = pDoc->GetparseError();    
   xmlRoot=pDoc->GetdocumentElement();
--  作者:绝不潜水得鱼
--  发布时间:12/1/2005 8:47:00 PM

--  
我的xml 文件大概是这样的:2.xml
<?xml version='1.0'?>
<!DOCTYPE test SYSTEM "file\\d:\test.dtd">
<COLLECTION
  <BOOK>
    <TITLE>Lover Birds</TITLE>
    <AUTHOR>Cynthia Randall</AUTHOR>
    <PUBLISHER>Lucerne Publishing</PUBLISHER>
  </BOOK>
  <BOOK>
    <TITLE>The Sundered Grail</TITLE>
    <AUTHOR>Eva Corets</AUTHOR>
    <PUBLISHER>Lucerne Publishing</PUBLISHER>
  </BOOK>
  <BOOK>
    <TITLE>Splish Splash</TITLE>
    <AUTHOR>Paula Thurman</AUTHOR>
    <PUBLISHER>Scootney</PUBLISHER>
  </BOOK>
</COLLECTION>

--  作者:绝不潜水得鱼
--  发布时间:12/1/2005 8:50:00 PM

--  
我的 xml 文件大致是这样:test.dtd
<?xml version='1.0'?>
<!ELEMENT COLLECTION    (DATE? , BOOK+) >
<!ELEMENT BOOK         (TITLE, AUTHOR, PUBLISHER) >
<!ELEMENT DATE         (#PCDATA) >
<!ELEMENT TITLE         (#PCDATA)  >
<!ELEMENT AUTHOR        (#PCDATA)  >
<!ELEMENT PUBLISHER     (#PCDATA)  >

--  作者:绝不潜水得鱼
--  发布时间:12/1/2005 8:56:00 PM

--  
这个xml其实是 大致 从microsoft提供的一个例子里面 拆分出来的一个xml 和dtd文件,在网上找了n久,发现没有多少讲怎么访问带有dtd 的xml 的资料(用dcom),不知liuzhidan兄能否提供一些访问的例子,我的email是 skywalker_402@hotmail.com,不胜感谢!!
还有一个问题,就是在不同机子上是不是 访问都有 区别 ,就是 loadxml 的那段 代码,在本机上可以过,但是在别人机子上就是不能过。。极度郁闷。。
--  作者:绝不潜水得鱼
--  发布时间:12/1/2005 9:47:00 PM

--  
发现是xml 中的  <COLLECTION 少了一个> 符号。汗!!
有个问题,我写了一个 loadxml 函数 在别的机子上运行时有这样的情况:
在loadxml 之后 找根节点时找不到,返回0;
loadxml处代码就是上面贴出来的 被注释的那段。十分感谢。。。。。。
--  作者:wangjia184
--  发布时间:12/15/2005 1:53:00 PM

--  
<!DOCTYPE test SYSTEM "file\\d:\test.dtd">

<!DOCTYPE test SYSTEM "file\\d:\\test.dtd">

?


--  作者:绝不潜水得鱼
--  发布时间:12/15/2005 9:17:00 PM

--  
回楼上的,问题已经ok了,就是在 SYSTEM  d:\test.dtd 这里不知为什么需要决定路径。。
--  作者:vampire_shirley
--  发布时间:12/20/2005 4:31:00 PM

--  
dtd里面不应该包含<?xml version='1.0'?>
不合法
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms