XMLLite解析xml

xmllite.dll visio读取xml文件的插件 xmllite.dll是Vista中的XML解析引擎的动态链接库文件 visio的插件和ie的插件 把文件放到C:\WINDOWS\system32 立即下载


XmlLite是一个简易的XML Parser,使用COM组件方式实现,在Vista及Server2003sp2以后都有提供。头文件和库文件在Windows SDK中,一般随Visual Studio 2005及以后安装都会有,如果另外装了Windows SDK也有提供。
首先是引用:
#include <xmllite.h>
#pragma comment (lib, "xmllite.lib") 


1. XmlLite解析XML文件
微软的XmlLite样例使用了ATL库里的CComPtr<>模板类来简化操作,不会用orz 实际上直接使用IXmlReader接口来做也是可以的。但是需要自己在最后手动调用释放方法:IXmlReader::Release()。


这里先说从XML文件来解析,XmlLite使用了不知道Windows SDK在哪提供的IStream接口,可以直接参照样例里的办法来创建一个来自文件的IStream对象,即使用Windows Shell的函数:SHCreateStreamOnFile()。实际上这个函数可以创建一个新文件并写入,具体可以调整第二个flag参数。初始化XmlReader的大概代码如下:


IStream* pFileStream = NULL;
IXmlReader* pReader = NULL;
::SHCreateStreamOnFile("filename.txt", STGM_READ, &pReader);
CreateXmlReader(__uuidof(IXmlReader), (void**)&pReader, NULL);
pReader->SetInput(pFileStream);


如果是写入XML
    HRESULT hr = S_OK;
    IStream *pOutFileStream = NULL;
    IXmlWriter *pWriter = NULL;
    //Open writeable output stream
    if (FAILED(hr = SHCreateStreamOnFile(szFilePath, STGM_CREATE | STGM_WRITE, &pOutFileStream)))
    {
        wprintf(L"Error creating file writer, error is %08.8lx", hr);
        HR(hr);
    }


    if (FAILED(hr = CreateXmlWriter(__uuidof(IXmlWriter), (void**) &pWriter, NULL)))
    {
        wprintf(L"Error creating xml writer, error is %08.8lx", hr);
        HR(hr);
    }
IXmlReader接口的方法实际并不复杂,负责读取XML文件的只有Read()和ReadValueChunk()两个,实际只有前者有点用。通过不停地调用Read()方法,可以知道当前XmlLite走到了哪个XML元素上,然后调用一系列GetXXX方法就能获得当前元素的文本、属性值、CDATA等等了。
XmlNodeType nodeType;
while (S_OK == pReader->Read(&nodeType)) {
    switch (nodeType) {
        // analyze type of the node
    }
}


Read方法可以获知当前节点是一个什么节点,通过XmlNodeType的枚举类型来看即可:是XML Declaration?Element?EndElement(即</element_name>)等等。




但是每个Read会跳过当前元素的所有属性,继续下一个元素,因此XmlReader不能还原XML的树形结构,只能单向往前。


当走到一个元素以后可以使用MoveToAttributeByName或者MoveToFirstAttribute等,然后再使用GetValue来获取属性的值。另外由于移动了XmlReader,因此需要使用MoveToElement回到元素上,再继续下一次Read().


const TCHAR* szValue = NULL;
pReader->GetLocalName(&szValue, NULL);    // get element name
pReader->MoveToFirstAttribute();    // move reader to the first attribute of this xml element
pReader->GetValue(&szValue, NULL);    // get attribute value
pReader->MoveToElement();            // move back to element from some attribute

逆向解析M团外卖mtgsig与waimai_sign加密参数实战指南⊙ω⊙ 本文详细解析了M团外卖App中mtgsig与waimai_sign两个核心加密参数的逆向分析与生成方法。通过抓包定位、静态逆向与Frida动态调试,拆解了waimai_sign的RSA签名逻辑与mtgsig的复杂参数组装加密流程,并提供了Python模拟实现的框架与调试心得,为安全研究及合规数据分析提供实战指南。 阅读详情

相关推荐

VBA常见错误 - “错误3706,未找到提供程序,该程序可能未正确安装”解决方法

1、问题描述 在利用VBA编程时,引用其它表格数据,出现以下问题: (1)运行“错误3706,未找到提供程序,该程序可能未正确安装”。 (2)引用数据失败 2、解决方法 下载“Access 2010 数据库引擎”,并安装即可。 https://www.microsoft.com/en-us/download/details.aspx?id=54920 AccessDatabaseEngine 2010 官方安装包,官网下载不了的可以来这里下载。(1)运行“错误3706,未找到提..

Nemuel的博客 3万+

XML开发库之XmlLite

MSDN描述:XmlLite 是一个快速安全的非缓存只进 XML 分析器,它允许开发人员生成高性能的 XML 应用程序。 XmlLite 可以使用能够使用动态链接库 (DLL) 的任何语言;Microsoft 建议使用 C++。库下载地址:http://msdn.microsoft.com/en-us/library/ee388577(v=VS.85).aspx库文档:http://msdn.microsoft.com/en-us/library/ms752872(v=VS.85).aspx

costa100的专栏 1493

VSCode + Clangd 配置避坑实录:从‘红波浪线’到完美代码提示的完整心路

本文详细记录了VSCode与Clangd配置过程中的常见问题及解决方案,从编译数据库生成到参数调优,帮助C++开发者快速解决代码提示失效、头文件找不到等问题,实现完美代码补全体验。重点介绍了Clangd与LLDB的集成配置及性能优化技巧,适用于Linux和跨平台开发环境。

weixin_28829479的博客 490

XmlLite

 用于本机 C++ 的小巧快捷的 XML 分析器Kenny Kerr本文讨论: XmlLite 与其他可用 XML 分析器的比较 XmlLite 的优势和限制 读取和写入 XML XML 安全注意事项 本文使用了以下技术: XML、C++ 目录 为什么推出新的 XML 分析器? COM“Lite” 读取 XML 写入 XML

benny5609的专栏 2886

PCIe链路训练Recovery状态机:从RcvrLock到链路稳定的关键路径

本文深入解析PCIe链路训练中的Recovery状态机,特别是RcvrLock状态的关键作用。从Block对齐、均衡预设值应用到状态转移条件,详细介绍了确保链路稳定的技术要点,并提供了高速率下的特殊处理方法和常见问题排查指南,帮助工程师解决PCIe链路不稳定问题。

weixin_28739079的博客 174

什么是Claude 的 Agent Skills?

摘要: Claude的Agent Skills功能支持通过结构化技能包(含指令、脚本、工具)实现任务自动化,如数据分析、文档生成等。核心能力包括:1)技能包管理(如Python脚本+模板);2)工具调用(API/数据库交互);3)子代理协作(拆分复杂任务)。快速上手步骤:创建技能包(如Excel报表生成)、配置工具权限、触发执行;支持多代理并行处理(如SQL查询+可视化)。关键技巧:工具需明确定义参数、利用子代理共享上下文、注重权限管控。官方文档与社区资源提供进阶指导,使Claude成为可编程的数字助手。

jobleap.cn求职助手首页 1729

VC++中操作XML(MFC、SDK)

<br />XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM。<br />DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:<br />1、MFC里用CComP

shenxuntel的专栏 867

Win10 环境下 ISE14.7 iMPACT 闪退的 DLL 修复方案 - FPGA 开发实战

本文详细介绍了在Win10系统下解决ISE14.7 iMPACT工具闪退问题的DLL修复方案,特别针对FPGA开发中常见的兼容性问题。通过替换关键DLL文件,有效解决了iMPACT在生成PROM文件时的崩溃问题,并提供了详细的步骤说明和注意事项,帮助开发者提升工作效率。

weixin_29197051的博客 209

下载 XmlLite ( 包括:xmlLite.h , xmlLite.lib , xmlLite.dll )

  XmlLite 是微软在在Vista中介绍的一个轻量级的XML解析引擎,非常好用。XmlLite 是可以运行在 XP/2000和 2003 系统下的,只需要有下面这3个文件:下载 XmlLite ( 包括:xmlLite.h , xmlLite.lib , xmlLite.dll ) 下载地址:http://www.domolo.com/tech_center/xmllit

我要去桂林-田春峰 7902

【人工智能】大模型可以分为L0层:基础大模型/通用大模型、L1层:行业大模型、L2层:细分场景模型三个层级

大模型确实可以分为L0、L1、L2三个层级,这种分层架构不仅有助于提升模型的泛化能力和适应性,还能更好地满足不同行业和场景的需求。华为盘古大模型的分层架构(L0、L1、L2)在多个证据中得到了详细描述和验证。例如,华为云盘古大模型3.0明确分为L0基础大模型、L1行业大模型和L2场景模型三层架构。此外,其他来源也一致支持这一分层架构,如用友网络的企业服务大模型、智谱AI的GLM-4系列等。

奶爸的编程之路,也就一周冷个三天 3978

基于 Mask R-CNN 的实例分割:从零开始构建一个强大的分割模型

在本文中,我们将介绍如何使用 Mask R-CNN(Region-based Convolutional Networks with Masks)实现实例分割。实例分割是计算机视觉中的一种任务,旨在识别并分割图像中的各个对象。我们将讨论如何准备数据集、配置 Mask R-CNN 模型并在自定义数据集上进行训练。

斌擎科技 1243

Windows 通用平台 XmlLite 示例:用 IXmlReader / IXmlWriter / IXmlWriterLite 解析与生成 XML

本文基于 Windows-universal-samples 仓库中的 `Samples/XmlLite` 示例,完整讲解 Windows 平台上 XmlLite API 的三个核心场景:使用 `IXmlReader` 流式读取 XML 文件并打印节点、使用 `IXmlWriter` 向文件写入各种 XML 节点类型、使用 `IXmlWriterLite` 完成读取到写入的透传转换。读完本文,你可

gitblog_00683的博客 947

Allegro 中复制一部分PCB到另一个PCB中去

引言:自从学了allegro后,我每天快乐地再拉线,一开心肯定出事情。不料今天一高兴,把本来在5层的铜皮直接在4层画起来了。不过,幸好我知道换层,才省了又要画铜皮的时间。好了,开干,如果要将其他层的铜皮换到想要换到的层上,就需要这个命令。

tianpu2320959696的博客 967

如何用一个分数预测公司会不会破产?Altman Z-Score 模型原理与 Python 实现指南

做信用审查时,业务分析师常被问到一个很“狠”的问题:这个客户的信用风险,能不能用一个数字说清楚?Altman Z-Score 就是为这类问题而生的经典工具——它把财报里 4 个关键财务比率加权合成一个 Z 值,不仅能划分风险分区,还能直接映射到 AAA~D 的传统信用评级。这篇文章先给出判定标准,再拆解每个指标代表什么、权重为什么是那个数,最后带你在 Python 里完成最小实现,并用回测验证它的

gitblog_00464的博客 416

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Windows-classic-samples 解析:用 XmlLite 在带命名空间的 XML 中写出无命名空间属性

本文围绕 Windows-classic-samples 仓库中的 `XmlLiteNamespaceWriter3` 示例,讲解如何使用 XmlLite(`IXmlWriter`)在声明了默认命名空间的 XML 文档里,写出一个**不带任何命名空间限定(namespace qualification)的属性**。通过通读示例源码([XmlLiteNamespaceWriter3.cpp](htt

gitblog_00166的博客 236

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: GDI 绘图小知识
下一篇: 追MM与23种设计模式
trandy
博客等级 码龄17年 79粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值