C++ 載入.xml檔案
///首先寫一個ProductNameConfig.xml <?xml version="1.0" encoding="GB2312" ?> <Root> <Product> <Parameter ProductID="CY" ProductName="棉紗" /> </Product> </Root> ///首先需要在標頭檔案包含以下兩個標頭檔案: #include "tinyxml.h" #include "tinystr.h" #define RETURN_OK 0 #define RETURN_ERROR -1 class TiXmlElement; class TiXmlNode; class TiXmlDocument; ///建立一個DataSet類,下面直接寫實現部分。 //類標頭檔案中定義TiXmlDocument* pDoc; //載入.xml檔案 int CDataSet::LoadProductInfo() { char chMainPath[MAX_PATH + 1] = {0}; GetModuleFileName(NULL, chMainPath, MAX_PATH); char *pos = strrchr(chMainPath, '\\'); *(pos + 1) = '\0'; std::string strTmpPath=chMainPath; // GetCurrentDirectory(MAX_PATH,path); strTmpPath+="ini\\ProductNameConfig.xml"; FILE* fp = fopen(strTmpPath.c_str(),"r"); if(fp ==NULL) { //LOG_TRACE(LOG_ERROR_LEVEL,"INIT","Please Check %s is Existing!",strTmpPath.c_str()); return RETURN_ERROR; } else { fclose(fp); fp=NULL; } if(ParseConfigFile(strTmpPath.c_str()) == RETURN_ERROR) { //LOG_TRACE(LOG_ERROR_LEVEL,"INIT","ParseConfigFile Failed",strTmpPath.c_str()); return RETURN_ERROR; } return ROHONDB_OK; } int CDataSet::ParseConfigFile(const char* szFileName) { pDoc = new TiXmlDocument(szFileName); bool bSuccess = pDoc->LoadFile(); if (!bSuccess) { //LOG_TRACE(LOG_ERROR_LEVEL,"PARSEFILE","Load File Failed"); delete pDoc; pDoc = NULL; return RETURN_ERROR; } //讀取Root節點 TiXmlNode* RootNode = pDoc->FirstChild("Root"); TiXmlElement* pPluginElement = NULL; if ((pPluginElement = RootNode->FirstChildElement("Product"))!= NULL) { if (ReadProductElement(pPluginElement) == RETURN_ERROR) { return RETURN_ERROR; } } else { //LOG_TRACE(LOG_ERROR_LEVEL,"PARSEFILE","Product Element is not finded"); return RETURN_ERROR; } return RETURN_OK; } int CDataSet::ReadProductElement(TiXmlElement* pPLuginElement) { ASSERT(pPLuginElement); TiXmlElement* pParameter=NULL; for (pParameter=pPLuginElement->FirstChildElement("Parameter");pParameter!=NULL;pParameter=pParameter->NextSiblingElement()) { m_mapProductNameField.insert(std::pair<std::string,std::string>(pParameter->Attribute("ProductID"),pParameter->Attribute("ProductName"))); } if (m_mapProductNameField.size() ==0) { ///LOG_TRACE(LOG_ERROR_LEVEL,"REDPRODUCT","Product Element size is zero"); return RETURN_ERROR; } return RETURN_OK; }
相關推薦
C++ 載入.xml檔案
///首先寫一個ProductNameConfig.xml <?xml version="1.0" encoding="GB2312" ?> <Root> <Product> <Parameter ProductID="C
C# 載入xml文件檔案及載入xml字串
//建立XmlDocument物件 XmlDocument xmlDoc = new XmlDocument(); //載入xml檔名 xmlDoc.Load(filename); //如果是xml字串,則用以下形式 xmlDoc.LoadXml(xmldata
《21天學通C#生成XML檔案
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 生成XML檔案{ /// <summary
關於mvnen專案下hibernate mybaits打包無法載入xml檔案
maven專案打包時,如果java目錄下有xml檔案,則打包時不會載入xml檔案,但是有時我們mybatis或hibernate的xml會寫在java目錄下。 解決方案: 在專案pom檔案build中加入如下配置即可解決問題 <resources>
C#中xml檔案的操作
1.xml檔案的概念:可擴充套件性標記語言。 2.作用:用來儲存標示資料。 3.語法:以.xml作為字尾,以<?xml version=”1.0” encoding=”utf-8” ?&g
C++ 讀取XML檔案 Markup.cpp的 CMarkup 讀取XML
新增Markup.cpp和.h,使用時新增引用 bool LoadModelCfg(char* FileName) { CMarkup xml; if (!xml.Load(FileName)) { return false; } xml.ResetPos(); if (xml.
c# 操作xml檔案,新增、刪除節點
/// <summary> /// 刪除當前選擇節點 /// </summary> /// <param name="sender"></param>
Kotlin通過Id操作View,Adapter和動態載入Xml檔案也可以類似操作
如果使用kotlin,什麼butterknife繫結,Xutil註解都不需要,只需要通過id就可以操作view,非常方便,但是在使用的過程中還是遇到兩個值得記錄的問題如下: 針對adapter中通過id來操作 針對動態載入佈局通過id來操作 其實兩者本質
【C#】XML檔案格式的寫入
寫入 //在記憶體中構建一個Dom物件 XmlDocument xmlDoc = new XmlDocument(); //增加一個文件說明 Xml
使用XmlDocument/XmlDataDocument類載入XML檔案時如何忽略DTD驗證
在XML檔案含有外部DTD驗證的時候,使用XmlDocument/XmlDataDocument類的Load方法會丟擲如下的例外: System.Xml.XmlException: 未找到所需的 DTD 標記。 行 m,位置 n。 我們可以採用下面的方法不去載入外部資源:
使用XmlDocument類載入XML檔案時忽略DTD驗證
這是因為要載入的xml檔案有外部的DTD驗證,解決辦法就是不去載入外部資源。 1 XmlDocument xml= newXmlDocument(); 2 xml.XmlResolver = null; 3 xml.Load(url);
在用c++讀取xml檔案時,執行時出現以下錯誤:出現未處理的“System.Xml.XmlException”型別的異常出現在 system.xml.dll 中
各位高手,我剛剛開始接觸c++,使用的是Microsoft Visual Studio 2003版本,在使用c++讀取xml檔案時,編譯已經通過,但是執行.exe程式時,老是出現這個錯誤:“未處理的“System.Xml.XmlException”型別的異常出現在 syste
mybatis載入xml檔案錯誤及其影響
一次在做一個專案的過程中,發現mybatis載入xml檔案錯誤,導致了後面所有的sql都報了這個sql語句的錯誤,一時沒有摸到頭腦,在此分析下。 在mybatis載入xml檔案的時候,會解析所有的檔案,同時把statement錯誤的檔案放到一個集合中去,程式碼如下:
Magento獲取使用者登入狀態及登入使用者資訊 /頁面載入 XML 檔案
Magento開發時經常需要獲取到當前登入管理員的使用者資訊,比如管理員的id,姓名,email地址,使用者名稱等。下面列出Magento中呼叫管理員資訊的相關函式。 $user = Mage::getSingleton('admin/session'); $userI
使用XmlDocument類載入XML檔案時如何忽略DTD驗證
錯誤提示:System.Xml.XmlException:未找到所需的 DTD 標記。 行 2,位置 3。 這是因為要載入的xml檔案有外部的DTD驗證,解決辦法就是不去載入外部資源。 1 XmlDocument xml= new XmlDocument();
c#載入xml的快速高效的演算法
xml內容:<?xml version="1.0" encoding="utf-8" ?><google> <googleColorBorder>f6fbff</googleColorBorder> <googleColorBG>f6fbff&l
C#解決XML檔案亂碼問題
一些英文版原始碼,用中文版VS開啟後,會出現亂碼問題。特別是把XML檔案中的英文改為中文後會顯示亂碼,解決的辦法是:1、在XML檔案的頭部加<?xml version="1.0" encoding="UTF-8"?>語句2、用記事本開啟XML檔案,點選另存為,在彈
Xerces-c DOM XML檔案的構造
Xerces中構造xml很簡單,但是想輸出就很麻煩,Xerces支援三種輸出 輸出到記憶體 輸出到標準輸出 輸出到本地檔案 下面列出用到的一些重要的類,可以查詢官網API解鎖更多的用法 1.DOMImplementation和DOMImplementat
libxml2.7.8 c++ 解析xml檔案 中文轉換
C++的XML程式設計經驗――LIBXML2庫使用指南 寫這篇文章的原因有如下幾點:1)C++標準庫中沒有操作XML的方法,用C++操作XML檔案必須熟悉一種函式庫,LIBXML2是其中一種很優秀的XML庫,而且它同時支援多種程式語言;2)LIBXML2庫的Tutorial
C#讀取XML檔案資料和把資料儲存至xml的方法
原文在百度知道中,來源於多個網友。 新浪微博:http://blog.sina.com.cn/s/blog_ad7fd0f4010180md.html (一) 儲存 var xml =XElement.Load(@"路徑");xml.Element("節點名字").AddA