dateTable和XmlDocument生成xml檔案
DataTable dt = helper.GetDataTable(ExamSql,pars);// params SqlParameter[] values)
//dt.TableName = "ReportInfo";
if (dt != null && dt.Rows.Count > 0)
{
string returnV = "";
sqlRowCount = true;
foreach (DataRow item in dt.Rows)
{
XmlDocument xmlDoc = new XmlDocument(); //寫入xml檔案
//建立型別宣告節點
XmlDeclaration xdDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDoc.AppendChild(xdDec);
//建立根節點
XmlElement xeRoot = xmlDoc.CreateElement("Request");
xmlDoc.AppendChild(xeRoot);
XmlElement MessageHeader = xmlDoc.CreateElement("MessageHeader");
XmlElement frontproviderId = xmlDoc.CreateElement("frontproviderId");//
frontproviderId.InnerText = frontprovider;
XmlElement inputCharset = xmlDoc.CreateElement("inputCharset");//
inputCharset.InnerText = "UTF-8";
MessageHeader.AppendChild(frontproviderId);
MessageHeader.AppendChild(inputCharset);
XmlNode xnXwsp = xmlDoc.SelectSingleNode("Request");
if (xnXwsp != null)
{
xnXwsp.AppendChild(MessageHeader);
}
//建立並新增節點
xeRoot = xmlDoc.CreateElement("ReportInfo");
if (xnXwsp != null)
{
xnXwsp.AppendChild(xeRoot);
}
if (!string.IsNullOrEmpty(item["JYSJ"].ToString()))
{//先這樣吧,不判斷格式了。。。。
nextDate = DateTime.Parse(item["JYSJ"].ToString()).ToString("yyyy-MM-dd HH:mm:ss.fff");
}
CreateNode(xmlDoc, xeRoot, "studyuid", item["StudyUid"].ToString());//檢查好
CreateNode(xmlDoc, xeRoot, "instanceuid", item["InstanceUid"].ToString()); //報告流水號
CreateNode(xmlDoc, xeRoot, "yljgdm", item["YLJGDM"].ToString());//醫療機構程式碼
CreateNode(xmlDoc, xeRoot, "wsjgdm", item["WSJGDM"].ToString());//衛生機構程式碼
CreateNode(xmlDoc, xeRoot, "jzlsh", item["JZLSH"].ToString());//就診流水號 DateTime.Now.ToString("yyyy-MM-dd"));// 日期型別的("yyyy-MM-dd HH:mm:ss:fff")
CreateNode(xmlDoc, xeRoot, "mzzybz", item["MZZYBZ"].ToString());//門診 住院標誌
CreateNode(xmlDoc, xeRoot, "kh", item["KH"].ToString());//卡號
CreateNode(xmlDoc, xeRoot, "klx", item["KLX"].ToString());//卡型別
CreateNode(xmlDoc, xeRoot, "brsfz", item["brsfz"].ToString());//病人身份證
CreateNode(xmlDoc, xeRoot, "brxm", item["BRXM"].ToString());//病人姓名
CreateNode(xmlDoc, xeRoot, "brxb", item["BRXB"].ToString());//病人性別
CreateNode(xmlDoc, xeRoot, "patientid", item["PatientID"].ToString());//影像號
CreateNode(xmlDoc, xeRoot, "jcxmdmyb", item["JCXMDMYB"].ToString());//專案標準程式碼
CreateNode(xmlDoc, xeRoot, "kdsj", item["KDSJ"].ToString());// //開單--時間DateTime.Now.ToString("yyyy-MM-dd"));
CreateNode(xmlDoc, xeRoot, "jysj", item["JYSJ"].ToString());//檢查時間DateTime.Now.ToString("yyyy-MM-dd"));//
CreateNode(xmlDoc, xeRoot, "examtype", item["ExamType"].ToString());// 檢查型別
CreateNode(xmlDoc, xeRoot, "sbbm", item["SBBM"].ToString());//檢查儀器裝置
CreateNode(xmlDoc, xeRoot, "yqbm", item["YQBM"].ToString());//檢查儀器號
CreateNode(xmlDoc, xeRoot, "sqks", item["SQKS"].ToString());//申請科室編碼
CreateNode(xmlDoc, xeRoot, "sqksmc", item["SQKSMC"].ToString());//申請科室名稱
CreateNode(xmlDoc, xeRoot, "sqrgh", item["sqrgh"].ToString());//申請人工號
//、、 <sqrgh>11</sqrgh> "2018-08-08");//訂單
//atd
CreateNode(xmlDoc, xeRoot, "sqrxm", item["SQRXM"].ToString());// 申請人姓名
CreateNode(xmlDoc, xeRoot, "sqrsfz", item["SQRSFZ"].ToString());//申請人身份證
CreateNode(xmlDoc, xeRoot, "jcksmc", item["JCKSMC"].ToString());//檢查科室名稱
CreateNode(xmlDoc, xeRoot, "bgrq", item["BGRQ"].ToString());//報告日期DateTime.Now.ToString("yyyy-MM-dd"));//
CreateNode(xmlDoc, xeRoot, "bgsj", item["BGSJ"].ToString());//報告時間,DateTime.Now.ToString("yyyy-MM-dd"));//
CreateNode(xmlDoc, xeRoot, "bgrxm", item["BGRXM"].ToString());// 報告人姓名
CreateNode(xmlDoc, xeRoot, "bgrsfz", item["BGRSFZ"].ToString());//報告人身份證號
CreateNode(xmlDoc, xeRoot, "shrxm", item["SHRXM"].ToString());//稽核人姓名
CreateNode(xmlDoc, xeRoot, "shrsfz", item["SHRSFZ"].ToString());//稽核人身份證號
CreateNode(xmlDoc, xeRoot, "jcbw", item["JCBW"].ToString());//檢查部位
CreateNode(xmlDoc, xeRoot, "jcmc", item["JCMC"].ToString());// 檢查名稱
CreateNode(xmlDoc, xeRoot, "zyjcxx1", item["ZYJCXX1"].ToString());//專有檢查資訊1
CreateNode(xmlDoc, xeRoot, "tjsj", item["tjsj"].ToString());//提交時間DateTime.Now.ToString("yyyy-MM-dd"));//
//string date = DateTime.Now.ToString("yyyy-MM-dd");
//string time = DateTime.Now.Hour + "-" + DateTime.Now.Minute + "-" + DateTime.Now.Second + "-" + DateTime.Now.Millisecond;
//string datetime = date + " " + time;
//xmlDoc.Save(Application.StartupPath + "\\功能測試" + datetime + ".xml");
//呼叫WebService服務
PortalServicesImplService ss = new PortalServicesImplService();
string argo = ConvertXmlToString(xmlDoc);
returnV = ss.pushRisReportService(argo);
//LogFiles LogFile = new LogFiles();
if (returnV.Contains("新增失敗"))
{
LogFile.WriteLine(" " + argo + " ");
LogFile.WriteLine("獲取WebService返回資訊:" + returnV);
}
else//成功
{
LogFile.WriteLine("檢查時間:" + nextDate);
LogFile.WriteLine("獲取WebService返回資訊:" + returnV);
}
//MessageBox.Show(returnV);
//string haha = "";
//執行返回成功的資訊,目前不確定是否只有新增成功,以後再讀取xml判斷code和desc的值
// "2018-08-08");//
}//foreach 外面結束了插入XML
if (returnV.Contains("新增成功") && sqlRowCount == true)
{
//新增xml Date節點,下次查詢從此時間獲取
AddDateFromDateXml(nextDateNum, nextDate);
}
}//row.count>0
-------------------------------------------------------------------------------------------------------------
/// <summary>
/// 建立節點
/// </summary>
/// <param name="xmldoc"></param> xml文件
/// <param name="parentnode"></param>父節點
/// <param name="name"></param> 節點名
/// <param name="value"></param> 節點值
///
public static void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
{
try
{
string value2 = "";
if (string.IsNullOrEmpty(value))//空值做處理
value = "1";
if (name == "kdsj" || name == "jysj" || name == "bgrq" || name == "bgsj" || name == "tjsj")//日期型別的
{
value2 = DateTime.Parse(value).ToString("yyyy-MM-dd");
}
XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
if (value2 != "")
{
node.InnerText = value2.Trim();
}
else
{
node.InnerText = value.Trim();
}
parentNode.AppendChild(node);
}
catch (Exception ex)
{
LogFiles log = new LogFiles();
log.WriteLine("異常資訊:" + ex.ToString());
}
}
/// <summary>
/// 將XmlDocument轉化為string
/// </summary>
/// <param name="xmlDoc"></param>
/// <returns></returns>
public string ConvertXmlToString(XmlDocument xmlDoc)
{
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = Formatting.Indented;
xmlDoc.Save(writer);
StreamReader sr = new StreamReader(stream, System.Text.Encoding.UTF8);
stream.Position = 0;
string xmlString = sr.ReadToEnd();
sr.Close();
stream.Close();
return xmlString;
}
相關推薦
dateTable和XmlDocument生成xml檔案
DataTable dt = helper.GetDataTable(ExamSql,pars);// params SqlParameter[] values) //dt.TableName = "ReportInfo";
在Idea中自動生成實體類和hibernate.cfg.xml檔案
1 按快捷鍵 ctrl+shift+alt+s調出project structure選單, 點選專案名稱, 新增hibernate模組, 在最右側點選+號, 新增hibernate.cfg.xml檔案 2 點選DataBase中的+號 ,連線 mysql資料庫 選擇資料庫名稱, 建立連線
IDEA Springboot專案 怎麼自動生成webapp和下面的xml檔案(詳細)
簡介 springboot 建立專案之後是沒有webapp的,今天講講idea怎麼生成和下面的xml 我的路徑: C:\Mytool\Test\springboot\springboot_d
Java之Pull方式生成xml檔案和解析xml檔案
Pull XML解析器早已經被google整合到android sdk當中,它是google官方推薦的解析器。 如果我們要在Java桌面、J2ME等當中使用Pull方式生成xml檔案和解析xml檔案,需要用到kxml2; KXML解析器是基於普通XML PULL解析器的
《21天學通C#生成XML檔案
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 生成XML檔案{ /// <summary
Android核心技術-day02-09-生成xml檔案 及 解析
AndroidManifest.xml 方式一: package com.gaozewen.savexmlinfo; import android.Manifest; import android.os.Bundle; import android.os.Environment;
_042_Android_使用Serializer去生成xml檔案
轉自https://www.cnblogs.com/linfenghp/p/5393832.html,感謝作者的無私分享。 xml檔案我們可以用來儲存一些資料。例如用來備份簡訊。這個例子中,我們就用XmlSerializer介面來實現一個備份簡訊的程式。當然了,為了程式簡單化,這個程式我們並不是
安卓使用StringBuffer和FileOutputStream生成xml文件
該程式是在安卓中點選生成xml按鈕,在sdcard生成一個名為smsbackup的xml文件 佈局就不多說了,先在存放java的資料夾中新建一個Sms類用來宣告變數 Sms程式碼如下: package com.example.createxmlv1; public class Sm
安卓通過XmlSerializer生成xml檔案
該博文是在上一篇博文的基礎上對主介面進行修改的,上篇博文連結:https://blog.csdn.net/liyunfu233/article/details/84144934 對按鈕單機事件進行修改 1、獲取XmlSerializer類的例項 通過xml這個工具類獲取 2、設定Xml
php生成XML檔案步驟
步驟 1、例項化 DOMDocument類 2、創在節點 3、節點套節點 4、追加屬性內容等 這是方法裡面的全部內容: $doc = new \DOMDocument('1.0','utf-8');//引入類並且規定版本編碼 $grandFat
DOM4j生成XML檔案示例:
DOM4j生成XML檔案示例: package com.sjc; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.XM
例解 autoconf 和 automake 生成 Makefile 檔案
引子 無論是在Linux還是在Unix環境中,make都是一個非常重要的編譯命令。不管是自己進行專案開發還是安裝應用軟體,我們都經常要用到make或 make install。利用make工具,我們可以將大型的開發專案分解成為多個更易於管理的模組,對於一個包括幾百個原始檔的
OpenCV訓練人臉模型並生成XML檔案
程式碼位置:23-LearnEigenFace.py 同時所需要的資源也都在專案裡面 import cv2 import os import numpy as np imgs = [] cl = [] imgPath = './Actor/zxc/' model = cv2.face
C++ Markup.cpp的 CMarkup生成XML檔案
將一個結構體或陣列容器的內容生成到XML檔案中。 結構體定義: struct data /*定義結構體*/ { int year,month,day; } ;struct stu /*定義結構體*/ { char n
java 通過dom4J生成xml檔案
樣例:public static void main (String[] args){Document document = DocumentHelper.createDocument();Element root = document.addElement("adi:ADI
Kotlin通過Id操作View,Adapter和動態載入Xml檔案也可以類似操作
如果使用kotlin,什麼butterknife繫結,Xutil註解都不需要,只需要通過id就可以操作view,非常方便,但是在使用的過程中還是遇到兩個值得記錄的問題如下: 針對adapter中通過id來操作 針對動態載入佈局通過id來操作 其實兩者本質
使用doxygen和latex生成PDF檔案
ubuntu版本:ubuntu-gnome-16.04-desktop-amd64,gnome版windows版本:win10LaTeX版本:CTeX windows版doxygen版本:linux版-
使用DOM4J生成XML檔案
生成XMLW檔案需要獲取Document物件,獲取該物件有2種方式:(1)通過讀取原有的xml檔案獲取document物件SAXReader saxReader = new SAXReader();Do
EditPlus修改預設路徑和不生成備份檔案
一、修改預設路徑 1、開啟EditPlus,選擇工具--> 設定目錄 在INI檔案目錄中設定你的資料夾,確定即可。 二、取消生成備份檔案 當我們在EditPlus上編譯執行java程式時,經常生成字尾為.bat 的備份檔案,可按以下步驟取消。 1、開啟工具--
解析XML時DTD的處理--解析時忽略,生成XML檔案時加上
一、解析XML檔案時,遇到DTD的定義要怎麼辦? 下面這段程式碼是ibatis配置檔案,用w3c Dom(其實任意一種解析方式都是這樣)都會從http://www.ibatis.com/dtd/sql-map-config-2.dtd 這 個地址找對應的DTD檔案進行校驗,如果因特網上這個地址