读取XML文件中的文本

10 篇文章
本文主要介绍如何使用编程语言读取XML文件,并从中提取文本数据。通过示例代码,详细讲解了处理XML文档的基本步骤,包括加载XML文件、遍历节点以及获取文本节点的值。对于可能出现的空值或null情况,也提供了相应的处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

// 创建对象
CoInitialize(NULL); // 初始化COM

// 创建解析器实例
CComPtr<IXMLDOMDocument> spXMLDOM;    

BSTR bstrItemText;
//    long value;
CString strbuf;

HRESULT hr
=spXMLDOM.CoCreateInstance (_uuidof(DOMDocument));

spXMLDOM
->put_async(VARIANT_FALSE);
spXMLDOM
->put_validateOnParse(VARIANT_FALSE);
spXMLDOM
->put_resolveExternals(VARIANT_FALSE);
spXMLDOM
->put_preserveWhiteSpace(VARIANT_TRUE);

_bstr_t path 
= _bstr_t(xmlPath);
// 装载XML文档。
hr=spXMLDOM->load(path);


// 1、读取里面全部文本
spXMLDOM->get_text(&bstrItemText); // new
strbuf = bstrItemText;             // new


// 2、读取一个节点
_bstr_t bstrSS("paragraph");
CComPtr
<IXMLDOMNodeList> spParagraphs;

spParagraphs
=spXMLDOM->getElementsByTagName(bstrSS); //搜索"Paragrah"


//是否正确的得到了指向IDOMNodeList的指针。
hr = spParagraphs->get_length(&value); //得到所包含的NODE节点的个数
if(SUCCEEDED(hr))
...{
    spParagraphs
->reset();
    
for(int ii=0; ii<value; ii++)
    ...{
        CComPtr
<IXMLDOMNode> spParagraph;
        
//得到具体的一个NODE节点
        
//    hr = spParagraphs->get_item(ii,&spParagraph); 
        
        spParagraph 
= spParagraphs->nextNode();
        
if(SUCCEEDED(hr))
        ...{
            spParagraph
->get_text(&bstrItemText); //得到该节点相关的文本信息
            strbuf += bstrItemText;
            strbuf 
+= " ";
        }
    }       
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值