Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455452
  • 博文数量: 724
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(724)

文章存档

2011年(1)

2008年(723)

我的朋友

分类:

2008-10-13 17:00:39

mybios:不能在VC6上编译。。郁闷。。
不能动态生成XML载入,只能从文件载入。。
(发表于2005-10-28 18:12:00)

wangjia184:这里有它的最新版本


添加了几个函数 
修复了几个BUG
(发表于2005-10-29 8:57:00)

wangjia184:mybios:不能在VC6上编译。。郁闷。。
不能动态生成XML载入,只能从文件载入。。

下载这个版本


然后用转换工具转换到VC6 
去掉operate [] (CString)的重载就可以了

动态载入是loadXml 这个类主要目的是操作文件
你要的话自己在CXml里面加个重载 从网络或者数据库直接读取

(发表于2005-10-29 9:00:00)

mybios:怎么这么懒咯你??我不会改代码啊。你就改好发上来全人类共享嘛~~
(发表于2005-10-29 13:27:00)

kimliang:#include "shlwapi.h"
#pragma comment(lib, "shlwapi.lib")

BOOL CXml::IsFileExist(CString strFilePath)
{
    return ::PathFileExists( strFilePath );
}

这样写简单多了。

不知道现在这个XML类还有没有问题?如果有的话请尽快贴出新版本啊。我刚接触XML,希望你把这个类越做越好,方便我这样的初学者。谢谢啦:)
(发表于2005-10-30 21:24:00)

wangjia184:PathFileExists 是用来判断 路径 或者 文件是否有效

如果是一个有效的路径 而非文件名 这个函数一样会返回true的 


(发表于2006-1-18 15:50:00)

wangjia184:请在此地址下载最新的版本


(发表于2006-1-24 10:05:00)

suifeng273:你的最新版本怎么下不了啊?
(发表于2006-2-20 15:37:00)

suifeng273:在 pElement = static_cast (m_pNode);
发生了错误 error C2061: syntax error : identifier 'IXMLDOMElementPtr'
Error executing cl.exe.
怎么弄阿?

(发表于2006-2-20 17:13:00)

wangjia184:楼下 你的不是最新版本
可以修改成:
pElement = static_cast (m_pNode);

最新版本的下载地址:


如果下不了 请发邮件索取
sky-sea-earth@21cn.com
or 
jerry.wang@clochase.com


(发表于2006-2-21 13:47:00)

suifeng273:wangjia184:发到我邮箱把,谢谢。
gaochao273@163.com
(发表于2006-2-23 21:10:00)

wangjia184:已发
(发表于2006-3-6 13:12:00)

asdmusic:下不了,给我发一份
asdmusi_cn@sina.com
(发表于2006-3-9 11:35:00)

wangjia184:已发
(发表于2006-3-10 10:10:00)

diaya:你的类写的挺好,让我学到了不少关于msxml4.dll的调用方法,非常感谢。
  只是发现当把demo.exe拷过到win98se上,再运行,会提示出错,我不知它需要什么样的环境才能在各系统下正常运行,不知你在其它系统上运行过它们没?
  后来我在98下,找了一下,发现它里面只有msxml.dll,我试过把msxml4.dll直接拷过去,想注册它,可注册不上,不知何故。如果想让它在各个系统(特别是没有装msxml4.dll的系统)都正常运行,该如何做?
(发表于2006-3-13 17:16:00)

wangjia184:在Win98上 安装MSXML4.msi可以不?
MSXML4是一定要装了
最好到Win98上调试一下就知道了
(发表于2006-3-14 13:13:00)

diaya:我知道要装MSXML4.dll,可不知如何装,但又不想把msxml4的SDK给装进丢,主是想让别人用这个exe程序,他们不需要有我这个编译环境。我想应该可以打个包给他们用。
(发表于2006-3-14 16:45:00)

wangjia184:用 InstallShield做安装包
(发表于2006-3-16 9:47:00)

diaya:谢谢,明白了。需要手动拷msxml4.dll,msxml4r.dll,并注册msxml4.dll。

对了,顺便问一个小问题。不知你是否试过在程序中加
“using namespace MSXML2;”,我想将将"MSXML2::"前缀去掉。用那个声明来指定,可好像不行,不知何故。
(发表于2006-3-27 17:47:00)

wangjia184:不想加 虽然麻烦点 不过不担心名字空间冲突的问题
(发表于2006-3-29 8:37:00)

wangjia184:

最新版本的下载地址哦。。。
(发表于2006-4-18 13:34:00)

Ldcsaa:写得非常好!竟然还帮我支持了Unicode!感激涕零啊◎另外有两点我想要说说:
1、该解释器不一定要运行在msxml4中,我用msxml3和msxml2测试过OK,只要做如下小小改动:
// MsXmlVersion.h ...
#pragma once
/***********************************
** MsXML 版本 **
MsXML4.0 -- USES_MSXML40
MsXML3.0 -- USES_MSXML30
MsXML2.0 -- (默认值, 不必定义)
***********************************/
#define USES_MSXML30

// xmlnode.h ...
#pragma once
#include "MsXmlVersion.h"
#ifdef USES_MSXML40
#import "msxml4.dll"
#elif defined USES_MSXML30
#import "msxml3.dll"
#else
#import "msxml2.dll"
#endif

// Xml.cpp Open() ...
#ifdef USES_MSXML40
hr = m_pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument40) );
#elif defined USES_MSXML30
hr = m_pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument30) );
#else
hr = m_pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument) );
#endif

2.我下载了最新版本,但是调用CXmlNode.GetValue()总是发生异常,异常的位置在CXmlNode::HasChildren()的这句:不知是什么原因~
pNodeList = m_pNode->selectNodes( _bstr_t("child::*") );
我把旧版本的HasChildren()函数替换调新版本的再把一个宏的名称改下,编译运行~~OK!!
(发表于2006-8-25 3:47:00)

wangjia184:MSXML4.0+ 才支持 XPath
所以你把它降到 MSXML3.0 肯定会报错
(发表于2006-8-28 10:28:00)

Shankr:1.最新版本中RemoveChildren中的实现
pNodeList = m_pNode->selectNodes( _bstr_t("child::*") );
与MSXML2.IXMLDOMNodeList nodeList = m_node.childNodes; 这样实现有什么区别啊?

2.另外你RemoveChildren测试了吗?
========================================
        public void RemoveChilds()
        {
            if (!HasChild())
                return;
            MSXML2.IXMLDOMNodeList nodeList = m_node.childNodes;

            int iLength = nodeList.length;

            for (int i = 0; i < iLength; i++)
            {
                MSXML2.IXMLDOMNode node;
                node = nodeList[0];
                m_node.removeChild(node);
            }
        }
我是这样实现的,你的for循环中pNodeList->length的值在你每次执行一个remove后,会变掉的,这样会删不全的.

(发表于2006-8-30 10:37:00)

Shankr:3._GetAttributer 的实现中怎么不用 getAttribute来实现啊?
public string GetAttribute(string name)
        {
            MSXML2.IXMLDOMElement element = (MSXML2.IXMLDOMElement)m_node;
            return (string)element.getAttribute(name);
        }
4._RemoveAttribute跟第3个也一样啊?为什么不直接用removeAttribute
(发表于2006-8-30 10:37:00)

wangjia184:恩 确实 不够简练
(发表于2006-9-4 12:01:00)

jk1258:無法下載新版,是否可以mail給我新版呢?
下載新版時,要輸入帳號、密碼,所以無法下載
我的mail是jk28kimo@yahoo.com.tw
謝謝。
(发表于2006-12-21 11:06:00)

wuhran:新版不能下载阿,给我发一个吧
wuhran@126.com
谢谢了。
谁有最新版的都可以发给我啊
(发表于2007-6-5 9:53:00)

wangjia184:最新版本地址:



(发表于2007-7-17 9:30:00)

wangjia184:RemoveChildren的bug已经修复

之所以不用removeAttribute和getAttribute是因为3.0-版本无此方法

之所以不用childNodes是因为 childNodes会把文本做为一个节点

新版本能够自动使用最高版本的MSXML
依次尝试6.0 5.0 4.0 3.0 2.6


(发表于2007-7-17 9:50:00)

wangjia184:新版本下载地址



(发表于2007-7-17 9:50:00)

wangjia184:
(发表于2007-12-11 13:43:00)

wangjia184:





最新版本
最新版本
最新版本
最新版本
最新版本
(发表于2007-12-11 13:43:00)

靖平28:下载不了啊,作者能给我发一份吗,cheding@126.com
(发表于2007-12-23 23:12:00)

wangjia184:请登陆后下载


已经更新到V3.0
(发表于2008-1-16 17:36:00)

..........................................................................
--------------------next---------------------

阅读(221) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~