求C++ 读取 XML完整代码

求C++ 读取 XML完整代码,第1张

nide.xml文件是你的xml文件。

下面就是从中找到 "abcdef"在文件中的位置

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

unsigned int Count=0 //定义无符号整数,记录要查找的字符串在文件nide.xml中的位置

int findNum(char *str) //查找方法,在文件中搜索字符串

{

unsigned int i=0,t1=0

FILE *p

char ch

if((p=fopen("nide.xml","rb"))==NULL)//你的xml文件nide.xml要放到程序所在目录

{

printf("\n打开文件失败\n")

exit(4)

}

while((ch=fgetc(p))!=EOF) //循环定位要查找的字符串

{

if(ch==str[t1])

t1++

else

t1=0

if(t1>=strlen(str))

{

printf("找到字符串%s位置为%d\n",str,i-strlen(str)+1)

Count = i-strlen(str)+1

i=1

break

}

i++

}

fclose(p)

if(!i) return 0

return i

}

int main(void) //main主方法

{

char *str="abcdef" //要查找的字符串-可以手工修改

int j=0,t1=0,t2=0

if((t1=findNum(str))==0) //调用查找方法,在文件中查找str

{

printf("没有找到字符串%s\n请按任意键退出\n",str)

return -1

}

getch() //等待程序手动结束以便观察结果

return 0

}

这段代码主要是把名字为my_URLLoader的XML文件中的数据读取进来,然后用数组把这些数据存起来。把外部的数据存到内存中,便于读写 *** 作。

my_Obj是声明一个对象。

这个对象有三个属性,分别对应XML的相应的节点的属性

所定义的XML大概是如下的结构:

<my_xml>

<img type="src">

//按你清碰文本的命名,应该存的是“图片的路径”的信息,如“包名/图片.jpg”

</img>

<img type="swf">

//按你文本的银正滑命名,应该存的是“动画的路径”的信息,如“包名/动画.swf”

</img>

<img>

//锋腊按你文本的命名,应该存的是“文本的路径”的信息,如"包名/文本.text"

</img>

</my_xml>

@后面是每个节点的属性

然后最后my_pic_arr.push(my_obj)是把这个对象添加到数组中

最后imgLoaded(0)是调用一个自己定义的函数

主要是禅孝这几个包:

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom.DOMSource

javax.xml.transform.stream.StreamResult

org.w3c.dom

import java.io.*

import java.util.*

import javax.xml.parsers.DocumentBuilderFactory

import javax.xml.parsers.DocumentBuilder

import javax.xml.transform.OutputKeys

import javax.xml.transform.TransformerFactory

import javax.xml.transform.Transformer

import javax.xml.transform.dom.DOMSource

import javax.xml.transform.stream.StreamResult

import org.w3c.dom.Document

import org.w3c.dom.Element

import org.w3c.dom.NodeList

import tools.Vote//自己的类

//载入

private DocumentBuilderFactory dbf=null

private DocumentBuilder db=null

private Document doc=null

private List listXml=null

public Document loadXml(File file)

{

try

{

dbf=DocumentBuilderFactory.newInstance()

db=dbf.newDocumentBuilder()

doc=db.parse(file)

}

catch(Exception e)

{

e.printStackTrace()

}

return doc

}

//乱芹 添贺陪稿加节点

public void addOptionXmlData(File file,int parentPos,String option)

{

if(doc==null){

doc=loadXml(file)

}

try

{

Element root=doc.getDocumentElement()

Element voot=(Element)root.getElementsByTagName("vote").item(parentPos)

Element optionNode=doc.createElement("option")

voot.appendChild(optionNode)

optionNode.setTextContent(option)

optionNode.setAttribute("sum", "0")

}catch(Exception ex){

ex.printStackTrace()

}

try//保存到XML文件

{

TransformerFactory tf=TransformerFactory.newInstance()

Transformer t=tf.newTransformer()

Properties props=t.getOutputProperties()

props.setProperty(OutputKeys.ENCODING, "gb2312")

t.setOutputProperties(props)

DOMSource dom=new DOMSource(doc)

StreamResult sr=new StreamResult(file)

t.transform(dom, sr)

}catch(Exception ex)

{

ex.printStackTrace()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12405129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存