在C+中读写XML文件+; 我研究了很多如何在C++中读写简单的XML文件,但是我不能开发它的代码。
我工作并安装了xerces-c库,我认为需要使用DOM或SAX2解析器来读取它 请有人帮我写代码 这样做的示例代码将非常有用 谢谢并致以最良好的问候,在C+中读写XML文件+; 我研究了很多如何在C++中读写简单的XML文件,但是我不能开发它的代码。,c++,xml,xerces-c,C++,Xml,Xerces C,我工作并安装了xerces-c库,我认为需要使用DOM或SAX2解析器来读取它 请有人帮我写代码 这样做的示例代码将非常有用 谢谢并致以最良好的问候, Adarsh Sharma我推荐MSXML。它可能看起来很复杂,但当你习惯了它后,它会变得很好和简单。 以下是一个示例: input.xml: <?xml version="1.0" encoding="UTF-8"?> <Car> <Wheels> <Wheel1>FL&l
Adarsh Sharma我推荐MSXML。它可能看起来很复杂,但当你习惯了它后,它会变得很好和简单。
以下是一个示例: input.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Car>
<Wheels>
<Wheel1>FL</Wheel1>
<Wheel2>FR</Wheel2>
<Wheel3>RL</Wheel3>
<Wheel4>RR</Wheel4>
</Wheels>
</Car>
佛罗里达州
FR
RL
RR
代码:
#包括
#包括
#包括
#导入重命名命名空间(_T(“MSXML”))
int main(int argc,char*argv[]){
HRESULT hr=协同初始化(NULL);
如果(成功(hr)){
试一试{
MSXML::IXMLDOMDocument2Ptr xmlDoc;
hr=xmlDoc.CreateInstance(uuuidof(MSXML::DOMDocument60),
NULL,CLSCTX_在PROC_服务器中);
//TODO:如果(失败(hr))。。。
if(xmlDoc->load(_T(“input.xml”)!=VARIANT\u TRUE){
printf(“无法加载input.xml\n”);
}否则{
printf(“XML已成功加载\n”);
xmlDoc->setProperty(“SelectionLanguage”、“XPath”);
MSXML::IXMLDOMNodeListPtr wheels=xmlDoc->selectNodes(“/Car/wheels/*”);
printf(“汽车有%u个轮子\n”,轮子->Getlength());
MSXML::IXMLDOMNodePtr节点;
node=xmlDoc->createNode(MSXML::node_元素,_T(“引擎”),_T(“”);
节点->文本=_T(“引擎1.0”);
xmlDoc->documentElement->appendChild(节点);
hr=xmlDoc->save(_T(“output.xml”);
如果(成功(hr))
printf(“output.xml已成功保存\n”);
}
}捕获(_com_error&e){
printf(“错误:%ws\n”,例如ErrorMessage());
}
coninitialize();
}
返回0;
}
输出:
XML已成功加载
这辆车有四个轮子
output.xml已成功保存
output.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Car>
<Wheels>
<WheelLF>1</WheelLF>
<WheelRF>2</WheelRF>
<WheelLR>3</WheelLR>
<WheelRR>4</WheelRR>
</Wheels>
<Engine>Engine 1.0</Engine></Car>
1.
2.
3.
4.
引擎1.0
您将在这里找到所需的一切:希望有人觉得这个有用;) Boost serializer可以做到这一点,如果您向其传递一个对象,它将编写一个包含所有类属性的文件(二进制或xml,甚至是一个简单的文本文件)。如果您不介意尝试其他内容,请尝试vtd xml。它更好、更简单、更快。@Raphael,我同意,这些例子很全面,涵盖了所有的OPs需求。我需要一个Mac OSX的解决方案。你能帮忙吗?@MahbuburRAaman:很抱歉反应太晚,我不会帮你的,因为我没有使用MacOSX的经验。但我相信你已经找到了另一个解决方案:)你忘了标题#include
<?xml version="1.0" encoding="UTF-8"?>
<Car>
<Wheels>
<WheelLF>1</WheelLF>
<WheelRF>2</WheelRF>
<WheelLR>3</WheelLR>
<WheelRR>4</WheelRR>
</Wheels>
<Engine>Engine 1.0</Engine></Car>