C# 操作xml檔案操作
阿新 • • 發佈:2020-08-17
1.通過遞迴獲取資料夾下的所有xml檔案,並提取xml中內容
xml格式如下
<?xml version="1.0" encoding="utf-8"?> <ROOT> <HEADDATA> <FROMPLATFORMCODE>E5119003117</FROMPLATFORMCODE> <TOPLATFORMCODE>P540</TOPLATFORMCODE> <DATA_NO>50</DATA_NO> <DATA_ENView Code>PUECT</DATA_EN> <DATA_CN>目</DATA_CN> <DATA_TYPE>1</DATA_TYPE> <DATA_KEY>24506689-938f-4517a6</DATA_KEY> <TIMESTAMP>20190801084902</TIMESTAMP> <VERSION>2.0</VERSION> </HEADDATA> <DESCONTEXT> <PROGRAM_BUDGET>188000.000000</PROGRAM_BUDGET> <RELATE_CODE>0</RELATE_CODE> <PURCHASE_PROJECT_CODE>巴中競採【2019】279-1號</PURCHASE_PROJECT_CODE> <PURCHASE_PROJECT_NAME>計算機(臺式電腦)、伺服器、交換裝置、其他辦公用品採購</PURCHASE_PROJECT_NAME> <UNIFIED_DEAL_CODE>D01-12513700062370904X-801-033087-T</UNIFIED_DEAL_CODE> <INVEST_PROJECT_CODE /> <TENDER_PROJECT_TYPE>D01</TENDER_PROJECT_TYPE> </DESCONTEXT> <DESBINARYS /> </ROOT>
需要查詢的路徑
List<keyValue> diclist = new List<keyValue>();
string path = @"E:\\網站釋出\\ToprovinceFile\\File"; getDirectory(path);
public void getDirectory(string path) { getFileName(path); DirectoryInfo root = new DirectoryInfo(path); foreach (DirectoryInfo d in root.GetDirectories()) { getDirectory(d.FullName); } }
public void getFileName(string path) { DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo item in root.GetFiles()) { if (item.Name.Contains("550.xml")) { XmlDataDocument fileDoc = new XmlDataDocument(); fileDoc.Load(Common.MapPath(item.FullName)); var fileNode = fileDoc.SelectSingleNode("/ROOT");//獲取根目錄 var str = fileNode.SelectSingleNode("HEADDATA/DATA_KEY").InnerText;//獲取note節點內容 var key = fileNode.SelectSingleNode("DESCONTEXT/UNIFIED_DEAL_CODE").InnerText; //<UNIFIED_DEAL_CODE>D01-12513700062370904X-20180423-026568-E</UNIFIED_DEAL_CODE> diclist.Add(new keyValue() { key = key, vallue = str }); } } }
2.string格式的xml檔案 提取其中部分內容
stringxml格式
<?xml version="1.0"?> <DESCONTEXT> <PROGRAM_BUDGET>395000.000000</PROGRAM_BUDGET> <RELATE_CODE>0</RELATE_CODE> <PRICE_FORM_CODE>1</PRICE_FORM_CODE> <OTHER_PROGRAM_BUDGET>395000</OTHER_PROGRAM_BUDGE> <PLATFORM_CODE>12513700062370904X</PLATFORM_CODE> <PUB_SERVICE_PLAT_CODE>12513700062370904X</PUB_SERVICE_PLAT_CODE> <DATA_TIMESTAMP>20190520085121</DATA_TIMESTAMP> <REGION_CODE>511900</REGION_CODE> <PURCHASE_PROJECT_CODE>巴中競採【2019】172-1號</PURCHASE_PROJECT_CODE> <PURCHASE_PROJECT_NAME>計算機(臺式電腦)、投影儀、交換裝置、其他辦公用品採購</PURCHASE_PROJECT_NAME> <UNIFIED_DEAL_CODE>D01-12513700062370904X-20190520-032086-F</UNIFIED_DEAL_CODE> <INVEST_PROJECT_CODE/> <TENDER_PROJECT_TYPE>D01</TENDER_PROJECT_TYPE> </DESCONTEXT>View Code
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml("以上示例xml");
var fileNode = xdoc.SelectSingleNode("/DESCONTEXT");
var str = fileNode.SelectSingleNode("UNIFIED_DEAL_CODE").InnerText;