用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);
- 菠菜什么人不能吃
- 家用自動抽水器的選擇方法 如何挑選家用自動抽水器
- 家用小地毯的清潔方法 如何清潔家用小地毯
- 補牙用什么材質好 補牙用哪些材質好
- 家用凈水機的選擇方法 如何選擇家用凈水機
- 破釜沉舟的典故 破釜沉舟的故事
- 西洋參的功效與作用及食用方法
- 農村家用采暖爐的選擇方法 農村家用采暖爐的選擇方法有哪些
- 家用鏡子清潔方法 鏡子怎樣清洗
- 家用塑料保溫杯的選擇方法 家用塑料保溫杯的選擇方法有哪些
