這是我收到的一個xml文件,我想用delphi生成相同的輸出。我使用delphi xml嚮導來通過我的模式生成一個大單元。IXMLNode設置前綴和名稱空間
所以這是輸出我想有(原始文件)
<?xml version="1.0" encoding="iso-8859-1"?><reh:Reha xmlns:reh="http://www.vdek.com/xml-schema/REH/1.8">
<reh:logische_Version>1.6.0</reh:logische_Version>
<reh:KV>
<reh:Kopfdaten>
<kod:Erstellungsdatum_Uhrzeit xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">2014-09-23T15:33:23</kod:Erstellungsdatum_Uhrzeit>
<kod:Version xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">1.2.0</kod:Version>
<kod:Dateinummer xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">000010</kod:Dateinummer>
<kod:Identifikationsdaten xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">
<kod:IK_Absender>108018007</kod:IK_Absender>
<kod:IK_Empfaenger>510800000</kod:IK_Empfaenger>
<kod:IK-Kostentraeger>108018007</kod:IK-Kostentraeger>
<kod:IK_Einrichtung>510800000</kod:IK_Einrichtung>
</kod:Identifikationsdaten>
<kod:Fall_ID_KV xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">
<kod:Krankenversichertennummer>I123456789</kod:Krankenversichertennummer>
<kod:Versichertenstatus>50001</kod:Versichertenstatus>
<kod:Kartengueltigkeit>1712</kod:Kartengueltigkeit>
<kod:Fallnummer>01800000099988877</kod:Fallnummer>
</kod:Fall_ID_KV>
<reh:Dateinummer></reh:Dateinummer>
</reh:Kopfdaten>
<reh:Bewilligung>
<bew:Admindaten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5">
<bew:Verarbeitungskennzeichen>10</bew:Verarbeitungskennzeichen>
<bew:Version>1.5.0</bew:Version>
<bew:LfdNr>01</bew:LfdNr>
</bew:Admindaten>
<bew:Fachliche_Daten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5">
<bew:Rehabilitand>
<bew:Anrede>1</bew:Anrede>
<bew:Name>
<bty:Nachname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Mustermann</bty:Nachname>
<bty:Vorname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Max</bty:Vorname>
</bew:Name>
<bew:Geschlecht>1</bew:Geschlecht>
<bew:Geburtsdatum>1950-08-21</bew:Geburtsdatum>
<bew:Adresse>
<bty:Strasse xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Saonestr.</bty:Strasse>
<bty:Hausnummer xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">3</bty:Hausnummer>
<bty:Wohnort xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Frankfurt</bty:Wohnort>
<bty:PLZ xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">60528</bty:PLZ>
<bty:Laenderkennzeichen xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">D</bty:Laenderkennzeichen>
</bew:Adresse>
<bew:Kommunikation>
<bty:Telefon xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">069/12345</bty:Telefon>
</bew:Kommunikation>
</bew:Rehabilitand>
<bew:Kosteninformationen>
<bew:Zuzahlung>
<bew:Zuzahlungseinzug>2</bew:Zuzahlungseinzug>
<bew:AnzahlTage>028</bew:AnzahlTage>
<bew:Zuzahlungsbetrag>01000</bew:Zuzahlungsbetrag>
</bew:Zuzahlung>
</bew:Kosteninformationen>
<bew:Rehainformationen>
<bew:Rehaart>93</bew:Rehaart>
</bew:Rehainformationen>
<bew:Aufnahmedaten>
<bew:IK_Krankenhaus>260612124</bew:IK_Krankenhaus>
<bew:Behandlungsart>1</bew:Behandlungsart>
<bew:Bewilligungsdiagnosen>
<bew:Version_ICD>2014</bew:Version_ICD>
<bew:Diagnose>
<bty:Diagnosenschluessel xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">M151</bty:Diagnosenschluessel>
</bew:Diagnose>
</bew:Bewilligungsdiagnosen>
<bew:Aufnahmedaten>
<bew:Erfolgt>N</bew:Erfolgt>
<bew:Geplant>2014-10-05</bew:Geplant>
</bew:Aufnahmedaten>
<bew:Indikationsgruppe>SA</bew:Indikationsgruppe>
</bew:Aufnahmedaten>
<bew:Bewilligungsinformationen>
<bew:Bewilligungsdatum>2014-09-23</bew:Bewilligungsdatum>
<bew:Kostenzusage_gueltig_bis>2014-10-31</bew:Kostenzusage_gueltig_bis>
</bew:Bewilligungsinformationen>
<bew:Stationaerdaten>
<bew:Behandlungsabschnitte>01</bew:Behandlungsabschnitte>
<bew:bewilligte_Tage>020</bew:bewilligte_Tage>
</bew:Stationaerdaten>
</bew:Fachliche_Daten>
<reh:Fachliche_Daten>
<reh:Rehabilitand/>
</reh:Fachliche_Daten>
</reh:Bewilligung>
</reh:KV>
<reh:Papieranlage>N</reh:Papieranlage>
</reh:Reha>
我的Delphi代碼
var
XML: IXMLReha;
begin
XML := NewReha;
XML.OwnerDocument.Options := [doNodeAutoCreate, doNodeAutoIndent];
XML.Logische_Version := '1.6.0';
//Präfixe wie :bs, :reh fehlen noch
{Kopfdaten} //xmlns:kod
Xml.KV.Kopfdaten.DeclareNamespace('kod', 'http://www.vdek.com/xml-schema/KOD/1.2');
Xml.KV.Kopfdaten.Attributes['test'] := 'test2';
XML.KV.Kopfdaten.Erstellungsdatum_Uhrzeit := '2014-09-23T15:33:23';
XML.KV.Kopfdaten.Version := '1.2.0';
XML.KV.Kopfdaten.Dateinummer := '000010';
XML.KV.Kopfdaten.Identifikationsdaten.IK_Absender := '108018007';
XML.KV.Kopfdaten.Identifikationsdaten.IK_Empfaenger := '510800000';
XML.KV.Kopfdaten.Identifikationsdaten.IKKostentraeger := '108018007';
XML.KV.Kopfdaten.Identifikationsdaten.IK_Einrichtung := '510800000';
XML.KV.Kopfdaten.Fall_ID_KV.Krankenversichertennummer := 'I123456789';
XML.KV.Kopfdaten.Fall_ID_KV.Versichertenstatus := '50001';
XML.KV.Kopfdaten.Fall_ID_KV.Kartengueltigkeit := '1712';
XML.KV.Kopfdaten.Fall_ID_KV.Fallnummer := '01800000099988877';
XML.KV.Kopfdaten.Dateinummer := '';
{Bewilligung}
XML.KV.Bewilligung.Admindaten.Verarbeitungskennzeichen := '10';
XML.KV.Bewilligung.Admindaten.Version := '1.5.0';
XML.KV.Bewilligung.Admindaten.LfdNr := '01';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Anrede := '1';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Nachname := 'Mustermann';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Vorname := 'Max';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geschlecht := '1';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geburtsdatum := '1950-08-21';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Strasse := 'Saonestr';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Hausnummer := '3';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Wohnort := 'Frankfurt';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.PLZ := '60528';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Laenderkennzeichen := 'D';
XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Kommunikation.Telefon := '069/12345';
{ ...}
//Dokument speichern
XML.OwnerDocument.SaveToFile('\\Server\Gen.xml');
end;
與我的Delphi代碼生成My輸出
<?xml version="1.0"?>
<Reha xmlns="http://www.vdek.com/xml-schema/REH/1.8" xsi:schemaLocation="http://www.foo.com/Myxsd.xsd">
<logische_Version>1.6.0</logische_Version>
<KV>
<Kopfdaten xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2" test="test2">
<Erstellungsdatum_Uhrzeit>2014-09-23T15:33:23</Erstellungsdatum_Uhrzeit>
<Version>1.2.0</Version>
<Dateinummer></Dateinummer>
<Identifikationsdaten>
<IK_Absender>108018007</IK_Absender>
<IK_Empfaenger>510800000</IK_Empfaenger>
<IK-Kostentraeger>108018007</IK-Kostentraeger>
<IK_Einrichtung>510800000</IK_Einrichtung>
</Identifikationsdaten>
<Fall_ID_KV>
<Krankenversichertennummer>I123456789</Krankenversichertennummer>
<Versichertenstatus>50001</Versichertenstatus>
<Kartengueltigkeit>1712</Kartengueltigkeit>
<Fallnummer>01800000099988877</Fallnummer>
</Fall_ID_KV>
</Kopfdaten>
<Bewilligung>
<Admindaten>
<Verarbeitungskennzeichen>10</Verarbeitungskennzeichen>
<Version>1.5.0</Version>
<LfdNr>01</LfdNr>
</Admindaten>
<Fachliche_Daten>
<Rehabilitand>
<Anrede>1</Anrede>
<Name>
<Nachname>Mustermann</Nachname>
<Vorname>Max</Vorname>
</Name>
<Geschlecht>1</Geschlecht>
<Geburtsdatum>1950-08-21</Geburtsdatum>
<Adresse>
<Strasse>Saonestr</Strasse>
<Hausnummer>3</Hausnummer>
<Wohnort>Frankfurt</Wohnort>
<PLZ>60528</PLZ>
<Laenderkennzeichen>D</Laenderkennzeichen>
</Adresse>
<Kommunikation>
<Telefon>069/12345</Telefon>
</Kommunikation>
</Rehabilitand>
</Fachliche_Daten>
</Bewilligung>
</KV>
</Reha>
那麼如何我可以設置前綴/命名空間像reh:,:kod ...在原始xml文件中的ym xml文件中?
正如你所看到的我不使用「.addchild」命令,所以我需要一個不同的答案。
可能重複http://stackoverflow.com/questions/3119314/如何設置在delphi中的文檔元素的前綴) –
它的笑容是的,但正如你可以看到我沒有與「AddChild」一起工作,所以解決方案對我來說沒有任何意義。這就是爲什麼我問 – Hidden
如何使用XSLT來執行此轉換?你可以在Delphi中應用XSLT樣式表嗎? –