對此還沒有更具體的瞭解。我是C#的新手,需要創建一個應用程序來恢復我們的數據庫的一部分...通過數據表從XML節點到SQL的廣泛想法?
我有一系列單獨的XML文件,跨越幾個不同的文件夾。說\ FOLDER \ P_0001 \ P_000002.xml,然後\ FOLDER \ P_0002 \ P_000065.xml(初始文件夾總是相同,但P_000X文件夾的數量總是不同的,這些文件夾中包含多個XML文件
這裏是XML格式是需要被讀取。
<?xml version="1.0" encoding="utf-16"?>
<EXAMS>
<EXAM id="15" majver="1" minver="1" width="1128" height="910">
<NAME xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">Artefact reduced program</NAME>
<PATIENT id="2" />
<OBJECTS>
<TAKE dbid="116" height="1280" width="2648">
<VIEW majver="1" minver="2" maximized="0" x="0" y="122" width="1124" height="653" vx="199" vy="0" vWidth="2248" vHeight="1280" rotation="0" type="XP" regio="01" position="" orientation="" title="01XP 12.03.05: P1A, Ansicht Artefact reduced prog.." macroDbId="1" flippedHoriz="0" flippedVert="0" inverted="0" brightness="0" contrast="0" xPelsPerMeter="9259" yPelsPerMeter="9259" calibrated="0" calibrationFactor="1000">
<PROPERTIES>
<PROPERTY name="NGDevicePluginData" value="" />
<PROPERTY name="NGPostProcessing" value="" />
<PROPERTY name="NGDoseValues" value="" />
</PROPERTIES>
<DIAGNOSIS x="0" y="136" width="0" height="0" />
</VIEW>
</TAKE>
</OBJECTS>
</EXAM>
<EXAM id="16" majver="1" minver="1" width="1128" height="910">
<NAME xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">Ceph</NAME>
<PATIENT id="2" />
<OBJECTS>
<TAKE dbid="120" height="2136" width="2808">
<VIEW majver="1" minver="2" maximized="0" x="4" y="447" width="561" height="440" vx="2" vy="1" vWidth="2805" vHeight="2135" rotation="0" type="XC" regio="03" position="" orientation="" title="03XC 28.07.04: 30x23, Ansicht Ceph" macroDbId="1" flippedHoriz="0" flippedVert="0" inverted="0" brightness="0" contrast="0" xPelsPerMeter="9615" yPelsPerMeter="9615" calibrated="0" calibrationFactor="1000">
<PROPERTIES>
<PROPERTY name="NGDevicePluginData" value="" />
<PROPERTY name="NGPostProcessing" value="" />
<PROPERTY name="NGDoseValues" value="" />
</PROPERTIES>
<DIAGNOSIS x="4" y="460" width="0" height="0" />
</VIEW>
</TAKE>
<TAKE dbid="121" height="2136" width="1756">
<VIEW majver="1" minver="2" maximized="0" x="598" y="450" width="351" height="440" vx="1" vy="1" vWidth="1755" vHeight="2135" rotation="0" type="XC" regio="04" position="" orientation="" title="04XC 23.08.05: -, Ansicht Ceph" macroDbId="1" flippedHoriz="0" flippedVert="0" inverted="0" brightness="0" contrast="0" xPelsPerMeter="9615" yPelsPerMeter="9615" calibrated="0" calibrationFactor="1000">
<PROPERTIES>
<PROPERTY name="NGDevicePluginData" value="" />
<PROPERTY name="NGPostProcessing" value="" />
<PROPERTY name="NGDoseValues" value="" />
</PROPERTIES>
<DIAGNOSIS x="598" y="463" width="0" height="0" />
</VIEW>
</TAKE>
<TAKE dbid="118" height="2136" width="1756">
<VIEW majver="1" minver="2" maximized="0" x="1" y="2" width="351" height="440" vx="1" vy="1" vWidth="1755" vHeight="2135" rotation="0" type="XC" regio="01" position="" orientation="" title="01XC 02.09.04: -, Ansicht Ceph" macroDbId="1" flippedHoriz="0" flippedVert="0" inverted="0" brightness="0" contrast="-9" xPelsPerMeter="9615" yPelsPerMeter="9615" calibrated="0" calibrationFactor="1000">
<PROPERTIES>
<PROPERTY name="NGDevicePluginData" value="" />
<PROPERTY name="NGPostProcessing" value="" />
<PROPERTY name="NGDoseValues" value="" />
</PROPERTIES>
<DIAGNOSIS x="1" y="15" width="0" height="0" />
</VIEW>
</TAKE>
<TAKE dbid="119" height="2136" width="1800">
<VIEW majver="1" minver="2" maximized="0" x="358" y="1" width="360" height="440" vx="0" vy="1" vWidth="1800" vHeight="2135" rotation="0" type="XC" regio="03" position="" orientation="" title="03XC 02.09.04: -, Ansicht Ceph" macroDbId="1" flippedHoriz="0" flippedVert="0" inverted="0" brightness="0" contrast="0" xPelsPerMeter="9615" yPelsPerMeter="9615" calibrated="0" calibrationFactor="1000">
<PROPERTIES>
<PROPERTY name="NGDevicePluginData" value="" />
<PROPERTY name="NGPostProcessing" value="" />
<PROPERTY name="NGDoseValues" value="" />
</PROPERTIES>
<DIAGNOSIS x="358" y="14" width="0" height="0" />
</VIEW>
</TAKE>
</OBJECTS>
</EXAM>
什麼需要做的是閱讀的XML某些節點,然後將它們添加到不同的行中的SQL。問題是,名稱是不同的。假設XML中的「NAME」實際上是進入SQL中的TGroupRaw表中的tGrpSName ......
但是我迷路了。 ssume,我將首先以這種方式將XML讀入數據集。
string path = "C:\\PDATA\\P_0000\\P_000002.xml";
DataSet ds = new DataSet();
ds.ReadXml(path);
然後,我需要找到一種方法將節點映射到不同的名稱,然後插入到SQL中。 當我完成並正常工作後,我可以找到一種方法來迭代所有單個XML文件,並對每個文件執行相同的操作。
但我迷失在此。已經在不同的事情上工作了大約一個月,並沒有任何線索。 有人可以給我一些建議,讓我開始?
順便說一句,我實際需要從XML文件中唯一的東西是患者id,名稱和考試ID。
首先,我會完全忽略DataSet。這是舊技術,並且將你引向歧途。 –
謝謝你們!這是完美的讓我開始。我不確定我會使用哪種方法,但我現在肯定正朝着正確的方向前進! – Redracer68