pugixml

用simpleXML 如何读取<![CDATA[]]> 中的内容呢这是本人帮你找的 , 希望可以帮到你:

------------------------------------------------------------------
-------------------------------------------------------------------
----------------------------------------------------------------------
所有XML处理程序必须支持Unicode字符编码的两种形式:UTF-8和UTF-16 。XML Parser可以读取使用ISO-8859-1、Big-5或者Shift-JIS编码的文档,并在加载文档时将它们自动转换为Unicode 。

如果XML文档使用的字符编码不是UTF-8(8-bit ASCII文本也是可接受的UTF-8)或者UTF-16 , 那么它必须在XML声明中提供字符编码声明,否则XML Parser可能会出错 。当然 , 即使对字符编码进行了声明,Parser也可能不能够处理(不支持该编码),但能够正确地给出提示信息 。(由于XML声明是使用基本的ASCII文本书写的,Parser能够正确地读出它的内容 。)

. 导入MSXML

首先 , 需要导入MSXML头文件和库到VC6.0工程中 。有两种导入方式:6U6Linux联盟
(1)自动方式,在源代码中添加如下两行程序即可:6U6Linux联盟
#import 6U6Linux联盟
using namespace MSXML2;6U6Linux联盟
(2)手动方式(有存在的理由么?呵呵)6U6Linux联盟
a)找到MSXML 4.0 SDK的安装目录,去发现两个子目录inc和lib;6U6Linux联盟
b)在VC选项中,将MSXML 4.0下inc和lib子目录添加到默认的头文件和库文件搜索路径中;6U6Linux联盟
c)在使用MSXML的源文件中包含头文件;6U6Linux联盟
d)在工程设置中将msxml2.lib添加到要链接的库中 。

以自动方式导入MSXML,会在你的工程目录下(或者Debug/Release下)生成两个头文件msxml4.tlh和msxml4.tli(前者为头文件声明,后者为内联函数定义文件) 。
----------------------------------------------------------------------
-----------------------------------------------------------------------如果是遍历一个未知XML文档,就需要使用IXMLDOMDocumentPtr的documentElement获得根元素,使用 IXMLDOMNodePtr的firstChild、nextSibling成员获得一个节点的所有子节点;使用IXMLDOMNodePtr的 nodeType成员来判断节点类型(元素、属性、文本 , 等等) , 使用text成员得到文本值 , 使用nodeName成员得到节点名 。还可以使用 IXMLDOMDocumentPtr、IXMLDOMNodePtr等的xml成员获得相应的xml字符串 。另详细的资料请参考MSXML 4.0 SDK文档 。

另外,在程序中动态创建的text节点的text值的数据量大小是有限的,在我的机器上测试发现(默认VC配置),使用256K的数据还正常,但使用512K的数据时就Stack Overflow了 。但是,加载XML文档时是没有问题的,其数据量并不受此限制 。

最后,在你使用MSXML DOM时,请清醒地认识到它在内部是一颗树的表示 , 任何数据都是以节点形式存在的 。That’s all!
----------------------------------------------------------------------
--------------------------------------------------------------------
$xml = simplexml_load_string($string, 'SimpleXMLElement', LIBXML_NOCDATA); 这样就可以了 。
---------------------------------------------------------------
-----------------------------------------------------------------

这是本人帮你找的,希望可以帮到你 。。。

php怎样读取xml中的cdata数据代码可以这样:loadxml($string);//班台$bantai=array('title'=>$xml->getelementsbytagname('channel')->item(0)->childnodes->item(1)->nodevalue,'link' =>$xml->getelementsbytagname('channel')->item(0)->childnodes->item(3)->nodevalue);for($i=0;$i$xml->getelementsbytagname('item')->item($i)->childnodes->item(1)->nodevalue, 'link' =>$xml->getelementsbytagname('item')->item($i)->childnodes->item(3)->nodevalue); }print_r($bantai);print_r($title);endif;?>

dom4j解析XML时,在读取cdata数据(里面是<div/>层)时,格式变成字符串了 , 请问怎样还原成原来有换行的格式用bufferedreader每次读取一行

什么是CDATA段CDATADTD中的属性类型全名:character data在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套 。DTD实例:指定类型为CDATA以后就可以在XML中被用于实例,例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于"check"的字符数据 。XML 实例:在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记 。CDATA区域是由“”为结束标记 , 注意CDATA为大写 。PHP实例:比如:PHP中的,DIV中就表示:Attribute : classData Type : CDATA

ibatis何时使用CDATA:ibatis中用标记避免sql中与xml规范相冲突的字符对xml映射文件的合法性造成影响.以""标记结束,指的是不应由xml解析器进行解析的文本数据(Unparsed Character Data),里所有的内容都会被解析器忽略.在xml元素中,"

用c++编写一个能计算对数函数的计算器(写上注释)能把具体要求写清楚吗?是只需实现对数函数运算 , 还是还要求处理加减乘除?对数函数用cmath库里的行吗?还是要自己实现?输入是否包含复合 , 是否需要表达式分析?

我用C++创建工程时会出现说缺少包含文件afxres.h,是函数库里没有这个文件吗?怎么解决?你好 。这个是编译器设置的问题 。你在整个项目或者文件中点击属性 。里面有个编译的时候不需要包含afxres.h,就可以了 。

用C++实现的函数库(有接口),如何通过avro调用该接口做成一个网页?新手上路,谢谢不是库里本来就有的,类似于Printf,Scanf ...这个不同系统不同平台有不同...你就是想直接用单纯的c(什么自己不知的函数都没)直接控制硬件;建议你学...

哪位大神告诉小弟wcscpy_s在标准C++库里的替代函数是什么啊,跨平台编译的时候总出错 , 拜谢啦?。。?/h3>直接用wcscpy试试看

您好,我想用visual c++6.0 绘制一个五子棋格,路径我使用了tc库里的函数,为什么还是编译失败呢请谨记:
DOS跟windows不是同一样的东西,二者图像访问具体机制具体 , 实现有天壤之别
所以TC的图形函数根本无法再在windows下工作

最简单的,也是唯一的解决方法:
学习windows GDI编程 。勇敢抛弃已经没有人使用的DOS图形系统及相关老掉牙的教科书

比较复杂的解决方法:
学习openGL
DrectX

怎么将txt文件转化成xml文件,又怎么读取xml文件的内容 将其存入数据库中只接手动复制好了,转xml麻烦呀,txt原来就是没格式的,如果工作量太大就直接写代码把文件批量写入数据库就好了,转xml真没有什么义意

VC中用MFC解析XML文件(VC++6.0)然后把解析的信息按一定的方法存入所连接的数据库中 。现在主要是第一步 。C++解析XML的方法比较多 , 用微软的MSXML,免费的TinyXML,不通过COM的boost::property_tree 。至于数据解析后录入数据库和你的业务逻辑有关系,没什么好说了

dom4j解析xml文件,xml的编码是utf-8,里边的中文解析出来是乱码,怎么解决? 文件用ie打开是正常的 。我想你的开发环境是多字节吧 。给你写了一个例子:
char* xmlBuff;//保存XML的数据
int unicodeNum = MultiByteToWideChar(CP_UTF8, 0, xmlBuff, -1, null, 0);//预先得到转换后的长度
wchar_t* unicodeArr = new wchar_t[unicodeNUm + 1];
memset(unicodeArr,0,(unicodeNUm+1)*sizeof(wchar_t));
MultiByteToWideChar( CP_UTF8, 0, xmlBuff, -1, (LPWSTR)unicodeArr, unicodeNUm);

如何在WinCE下实现xml文件的读写1:当做文本文件来处理 。2:使用微软提供的类库 。3:使用第三方库,比如 TinyXML 或 pugiXML 等 。

XML中的<名字/> 和<名字></名字>的小问题你可以了解一下 , xml的格式,,,,百度文库有

MFC下使用msxml.dll生成xml文件格式不对齐对齐方式是段落内容在文档的左右边界之间的横向排列方式 。Word共有5种对齐方式:左对齐、右对齐、居中对齐、两端对齐和分散对齐 。左对齐是将文字段落的左边边缘对齐; 两端对齐是将文字段落的左右两端的边缘都对齐; 两者异同: 这两种对齐方式的左边都是对齐的,而一般来说,如果段末最后一行字数太少,那么最后一行“两端对齐”的效果与“左对齐”的效果一样;又由于我们的阅读习惯基本上都是从左到右,且中文文章中的行尾相差不 , 不注意看不出其中差别,因此 , 人们就会觉得“左对齐”与“两端对齐”的效果一样 。其实呢,两者之间是有区别的,“两端对齐”的段落的右边也是对齐的,而“左对齐”的右边一般情况下不会对齐 。做个试验:你在word中输入一段比较长的英文文字,分别使用两种不同的对齐方式,仔细观察 , 就会发现两者之间的差别了 。因为一般来说,我们有这样的书写规则:大部分标点符号不能放在行首,比如句号“ 。”、问号“?”等; 一串字符(一个英文单词、一串数字)不能拆开或割断放在不同的两行; 于是 , 在这样的书写规则下,我们常常会遇到文章各行的文字(字符)数不相等的情况,这时采用“左对齐”的方式 , 就会出现每行行尾不整齐的情况 , 而采用“两端对齐”的方式 , 就会把超出的行压缩、减少的行拉伸 , 使整个段落各行右端也对齐(末行除外),这样的文章看上去就比较美观些 。在两端对齐方式中 , 由于通常每段最后一行都比其他行短,文本会显得没有两端对齐 。要使具有两端对齐格式的段落中的最后一行也两端对齐,请将插入点置于最后一行末尾,然后按 Shift+Enter 。请注意,如果对齐的行很短,会在单词间插入大段的空白,因而会使该行显得不美观 。

用mfc解析xml时语言用哪些知识【pugixml】给你一个MFC操作XML的例子001002C:\test.txt// 我们用MFC来读取上述xml,代码如下:void CTestToolsDlg::ReadXml(CString strXmlPath){MSXML2::IXMLDOMDocumentPtr pDoc;::CoInitialize(NULL);HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));if (!SUCCEEDED(hr)){MessageBox(_T("创建DOMDocument对象失败 。\n请检查运行环境"), _T("错误"), MB_ICONERROR);return;}// 读取xmlpDoc->put_async(VARIANT_FALSE);VARIANT_BOOL bhr = pDoc->load((_variant_t)strXmlPath);if (bhr != VARIANT_TRUE) {MessageBox(_T("无法正确读取xml文件"), _T("错误"), MB_ICONERROR);return;}// 根节点取得MSXML2::IXMLDOMElementPtr root = pDoc->documentElement;// 取得根节点的名字_variant_t strRootName = root->nodeName;_bstr_t wstrRootName(strRootName.bstrVal);MSXML2::IXMLDOMNodeListPtr nodeList = root->GetchildNodes();//cases// 解析cases的子节点ReadCases(nodeList);} void CTestToolsDlg::ReadCases(MSXML2::IXMLDOMNodeListPtr nodeList){int ilength = nodeList->Getlength();for (int nodeCount = 0; nodeCount nextNode();_variant_t strNodeName = nodePtr->GetnodeName();_variant_t strNodeValue = https://www.zaoxu.com/jjsh/bkdq/nodePtr->GetnodeValue();// 读取case节点下的子节点ReadCase(nodePtr->GetchildNodes());}}void CTestToolDlg::ReadCase(MSXML2::IXMLDOMNodeListPtr nodeList){CString strLogInfo;strLogInfo.Empty();CString strNo;// case编号CString strSrcFile;// 源文件CString strDestFile;// 目标文件for (int nodeCount = 0; nodeCount Getlength(); nodeCount++){MSXML2::IXMLDOMNodePtr nodePtr = nodeList->nextNode();_variant_t strCaseNodeName = nodePtr->GetnodeName();_variant_t strCaseNodeValue = nodePtr->Gettext();BSTR bStrTemp = strCaseNodeName.bstrVal;CString strTemp = CString(bStrTemp);SysFreeString(bStrTemp);CString strNodeName = strTemp;//节点的值,如何取得?if (0 == strNodeName.CompareNoCase(_T("NO"))){strNo = (BSTR)strCaseNodeValue.pbstrVal;// 取得的值可以打印出来printf(strNo);}// 节点有属性值,该怎么处理?else if (0 == strNodeName.CompareNoCase(_T("CopyFile"))){strSrcFile.Empty();strDestFile.Empty();// 取得节点的属性值MSXML2::IXMLDOMNamedNodeMapPtr pDOMAttrList= nodePtr->Getattributes();for (int j = 0; j Getlength(); j++){MSXML2::IXMLDOMNodePtr pDOMAttr= pDOMAttrList->Getitem(j);// 取得源文件路径if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("src"))){strSrcFile = pDOMAttr->GetnodeTypedValue();// 取得目标文件路径} else if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("dest"))){strDestFile =pDOMAttr->GetnodeTypedValue();}CopyFile(strSrcFile, strDestFile, FALSE);}else if (0 == strNodeName.CompareNoCase(_T("DelFile"))){strDestFile.Empty();strDestFile = CString((BSTR)strCaseNodeValue.pbstrVal);DeleteFile(strDestFile);}}}// 为了能够让MFC认识MSXML2,我们需要引入相应的dll , 代码如下;#import "msxml4.dll"

mfc 新建xmlvoid CreateXml()
{
CoInitialize(NULL);
// 创建文档
MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
//创建DOMDocument对象
HRESULT hr = pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
if (!SUCCEEDED(hr))
{
return;
}
// Create the Processing Instruction
MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL;
pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");

_variant_t vNullVal;
vNullVal.vt = VT_NULL;
pXMLDoc->insertBefore(pXMLProc, vNullVal);
// 创建根结点
_variant_t varNodeType((short)MSXML2::NODE_ELEMENT);
MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL;
pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Cases"), _T(""));
// 添加根结点
pXMLDoc->appendChild(pXMLNodeRoot);
// 创建并添加下级结点
MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL;
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case")));
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEle = NULL;
pXMLEle = pXMLDoc->createElement(_T("CopyFile"));
// 创建并设置下级结点属性
MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL;
pXMLAttr = pXMLDoc->createAttribute(_T("src"));
pXMLAttr->nodeTypedValue = https://www.zaoxu.com/jjsh/bkdq/"C://test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("dest"));
pXMLAttr->nodeTypedValue = https://www.zaoxu.com/jjsh/bkdq/"D://Test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle);
MSXML2::IXMLDOMElementPtr pXMLEle1 = NULL;
pXMLEle1 = pXMLDoc->createElement(_T("DelFile"));
pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\\test.txt"));
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle1);

// 保存文档
pXMLDoc->save(_T("d:\\Test.xml"));
}

效果如下:




C:\test.txt



// 读取XML



001




002
C:\test.txt


我们用MFC来读取上述xml,代码如下:


void CTestToolsDlg::ReadXml(CString strXmlPath)
{
MSXML2::IXMLDOMDocumentPtr pDoc;
::CoInitialize(NULL);
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));




if (!SUCCEEDED(hr))
{
MessageBox(_T("创建DOMDocument对象失败 。\n请检查运行环境"), _T("错误"), MB_ICONERROR);
return;
}
// 读取xml
pDoc->put_async(VARIANT_FALSE);
VARIANT_BOOL bhr = pDoc->load((_variant_t)strXmlPath);


if (bhr != VARIANT_TRUE) {
MessageBox(_T("无法正确读取xml文件"), _T("错误"), MB_ICONERROR);
return;
}


// 根节点取得
MSXML2::IXMLDOMElementPtr root = pDoc->documentElement;
// 取得根节点的名字
_variant_t strRootName = root->nodeName;
_bstr_t wstrRootName(strRootName.bstrVal);
MSXML2::IXMLDOMNodeListPtr nodeList = root->GetchildNodes();//cases

// 解析cases的子节点

ReadCases(nodeList);

}


void CTestToolsDlg::ReadCases(MSXML2::IXMLDOMNodeListPtr nodeList)
{
int ilength = nodeList->Getlength();
for (int nodeCount = 0; nodeCount < ilength; nodeCount++) {
MSXML2::IXMLDOMNodePtr nodePtr = nodeList->nextNode();
_variant_t strNodeName = nodePtr->GetnodeName();
_variant_t strNodeValue = https://www.zaoxu.com/jjsh/bkdq/nodePtr->GetnodeValue();

// 读取case节点下的子节点
ReadCase(nodePtr->GetchildNodes());
}
}


void CTestToolDlg::ReadCase(MSXML2::IXMLDOMNodeListPtr nodeList)
{
CString strLogInfo;
strLogInfo.Empty();
CString strNo;// case编号
CString strSrcFile;// 源文件
CString strDestFile;// 目标文件
for (int nodeCount = 0; nodeCount Getlength(); nodeCount++)
{
MSXML2::IXMLDOMNodePtr nodePtr = nodeList->nextNode();
_variant_t strCaseNodeName = nodePtr->GetnodeName();
_variant_t strCaseNodeValue = https://www.zaoxu.com/jjsh/bkdq/nodePtr->Gettext();
BSTR bStrTemp = strCaseNodeName.bstrVal;
CString strTemp = CString(bStrTemp);
SysFreeString(bStrTemp);
CString strNodeName = strTemp;
//节点的值,如何取得?
if (0 == strNodeName.CompareNoCase(_T("NO")))
{
strNo = (BSTR)strCaseNodeValue.pbstrVal;

// 取得的值可以打印出来
printf(strNo);
}

// 节点有属性值 , 该怎么处理?
else if (0 == strNodeName.CompareNoCase(_T("CopyFile")))
{
strSrcFile.Empty();
strDestFile.Empty();
// 取得节点的属性值
MSXML2::IXMLDOMNamedNodeMapPtr pDOMAttrList= nodePtr->Getattributes();
for (int j = 0; j Getlength(); j++)
{
MSXML2::IXMLDOMNodePtr pDOMAttr= pDOMAttrList->Getitem(j);
// 取得源文件路径
if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("src")))
{
strSrcFile = pDOMAttr->GetnodeTypedValue();
// 取得目标文件路径
} else if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("dest")))
{
strDestFile =pDOMAttr->GetnodeTypedValue();
}

CopyFile(strSrcFile, strDestFile, FALSE);
}
else if (0 == strNodeName.CompareNoCase(_T("DelFile")))
{
strDestFile.Empty();
strDestFile = CString((BSTR)strCaseNodeValue.pbstrVal);

DeleteFile(strDestFile);
}
}
}
为了能够让MFC认识MSXML2,我们需要引入相应的dll,代码如下;
#import "msxml4.dll"

Mfc使用msxml4.dll导入xml文件,导出为excel文件同学~这不是这次实训的课题吗?

我是个VC初学者,遇到关于DLL和添加引用的问题 , 请高手指教! 情况可能有点复杂 , 请耐心看完,不胜感激楼主理解是正确的 。楼主说自己试初学VC,但居然能够自己研究发现这么多信息,如果我是初学者的话,我肯定没楼主那么能干 。一定会一头雾水 。从这点上 , 我非常佩服楼主的才能!我是远远达不到这样的高度的 。

至于他们给你的DLL , 基本上能断定那个是CLR写的DLL 。就我理解,CLR应该和MFC是完全不一样的,无论是语言的语法,或者是从CLR、MFC的基础架构方面 , 都没有交集!因此可以将CLR理解为一门全新的语言,它使用的库是.net 库 。楼主肯定有 MFC 基础的 。如果楼主研究过C#的话,那CLR应该是很容易上手的 。从亲缘性方面来讲 , CLR项目和C#项目更相似 。它们的DLL只需要在使用DLL的项目中,通过楼主所言的“引用”方式添加进来就OK了 。没有LIB的区别 。它的实现机制是:所有DLL/EXE在文件内部都会有一个清单 , 该清单记录了DLL/EXE自己实现的类,函数以及它引用别人的类、函数和这些文件名等一系列信息 。

至于有人提出是COM的关系,我认为这个问题应该和COM没有一点关系 。所以如果要从COM入手,完全是一条死胡同 。会浪费时间的!

虽然VC支持MFC和CLR混编,但如果要混编,我感觉系统不稳定,一方面我担心兼容性的问题导致程序的稳定性问题 。另一方面,既要熟悉MFC,又要熟悉CLR,否则混编很困难 。我认为,既然要用别人的CLR DLL , 那么最好还是别用MFC,直接做CLR 。楼主不熟悉CLR , 那么只有学 。尽管需要赶工期,但我也想不出好办法 。做CLR项目是我认为最好的出路!

wince6上读写XML文件太慢,有没有更快速的方法public List pageListTwo(int currentPage, int showRows)
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList resultList = new ArrayList();
try
{

如何在WinCE下实现xml文件的读写xml文件和txt文件相同 , 使用普通的文本操作函数即可读取 。

1、C语言标准库提供了一系列文件操作函数 。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中 。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读?。籪printf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置 。
2、例程:

#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.xml", "r");//打开xml格式输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串

printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数

fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数

fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}

如何用Java实现对xml文件的读取和写入以及保存直接附源码import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;import org.dom4j.*;
import org.dom4j.io.XMLWriter;
public class Dom4jSample { public static void main(String[] args) {
Dom4jSample dom4jSample = new Dom4jSample();
Document document = dom4jSample.createDocument();
try{
dom4jSample.FileWrite(document);

Document documentStr = dom4jSample.StringToXML("I Love!");
dom4jSample.XMLWrite(documentStr);

Element legend = dom4jSample.FindElement(document);
System.out.println(legend.getText());
}
catch(Exception e)
{

}
}

/*
* Create a XML Document
*/
public Document createDocument()
{
Document document = DocumentHelper.createDocument();

Element root = document.addElement("root");

Element author1 = root.addElement("Lynch");
author1.addAttribute("Age","25");
author1.addAttribute("Country","China");
author1.addText("I am great!");

Element author2 = root.addElement("Legend");
author2.addAttribute("Age","25");
author2.addAttribute("Country","China");
author2.addText("I am great!too!");

return document;
}

/*
* Create a XML document through String
*/
public Document StringToXML(String str) throws DocumentException
{
Document document = DocumentHelper.parseText(str);
return document;
}
public Element FindElement(Document document)
{
Element root = document.getRootElement();
Element legend = null;
for(Iterator i=root.elementIterator("legend");i.hasNext();)
{
legend = (Element)i.next();
}
return legend;
}

/*
* Write a XML file
*/
public void FileWrite(Document document) throws IOException
{
FileWriter out = new FileWriter("C:/Dom2jSample.xml");
document.write(out);
out.close();
}

/*
* Write a XML format file
*/
public void XMLWrite(Document document) throws IOException
{
XMLWriter writer = new XMLWriter(new FileWriter("C:/Dom2jSampleStr.xml"));
writer.write(document);
writer.close();
}
}

java如何向xml文件写入内容?我以前学dom解析的时候写了一个小例子 , 你参考参考package com.lhx.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Text;public class Test { public static void main(String[] args) {DocumentBuilderFactoryfct=DocumentBuilderFactory.newInstance();try {DocumentBuilder bui=fct.newDocumentBuilder();Document doc=bui.newDocument();Element ps=doc.createElement("persons");Element p1=doc.createElement("person");Element p2=doc.createElement("person");Attr id1=doc.createAttribute("id");Attr id2=doc.createAttribute("id");id1.setNodeValue("1");id2.setNodeValue("2");Element name1=doc.createElement("name");Text na1=doc.createTextNode("龙大哥");Element name2=doc.createElement("name");Text na2=doc.createTextNode("龙大爷");Element sex1=doc.createElement("sex");Text se1=doc.createTextNode("帅哥");Element sex2=doc.createElement("sex");Text se2=doc.createTextNode("妹子");doc.appendChild(ps);ps.appendChild(p1);p1.appendChild(name1);p1.setAttributeNode(id1);name1.appendChild(na1);p1.appendChild(sex1);sex1.appendChild(se1);ps.appendChild(p2);p2.appendChild(name2);p2.setAttributeNode(id2);name2.appendChild(na2);p2.appendChild(sex2);sex2.appendChild(se2);try {FileOutputStream fos=new FileOutputStream(new File("E:/longdada.xml"));try {((org.apache.crimson.tree.XmlDocument)doc).write(fos);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {fos.flush();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {fos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}附图:这个例子有文本节点的创建,属性的创建等等,基本上可以解决绝大多数XML内容了 。无论你想创建什么类型的XML,可以套用里面的方法 。另外,注意:文件通过流创建的时候用到一个类 , 需要一个jar,这个类我已经用完整形式写出来了,你去网上下载下来,添加进工程即可 。弱国觉得可行 , 望采纳^_^
怎么向已有的xml文件写入数据,用javascript实现
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async=false;
doc.load("D:\\My Documents\\test1\\testUser.xml");

var oEle = doc.createElement("user");
oEle.setAttribute("username","test")
oEle.setAttribute("userpass","tt")

var oRoot = doc.selectSingleNode("users");
oRoot.appendChild(oEle);