1. 程式人生 > >dateTable和XmlDocument生成xml檔案

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;
        }

相關推薦

dateTableXmlDocument生成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介面來實現一個備份簡訊的程式。當然了,為了程式簡單化,這個程式我們並不是

安卓使用StringBufferFileOutputStream生成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來操作 其實兩者本質

使用doxygenlatex生成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檔案進行校驗,如果因特網上這個地址