8. Juli 2009 15:56
8. Juli 2009 16:04
8. Juli 2009 17:03
8. Juli 2009 17:17
10. Juli 2009 08:30
IF NOT CREATE(XMLDOMDocument) THEN
EXIT(FALSE);
...
XMLDOMDocument.loadXML := '<ATLAS/>'; //erster Tag
CurrNode := XMLDOMDocument.documentElement;
...
IF XMLDOMDocument.AddElement(CurrNode,'NAME','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
....
XMLDOMDocument.save(Path); // speichern der XML
10. Juli 2009 09:35
{
Variablen:
Name DataType Length
XMLVerzeichnis Text 229
XMLFileName Text 30
XMLFile File
DateiOffen Boolean
}
XMLFile.QUERYREPLACE(TRUE);
DateiOffen := XMLFile.CREATE(XMLVerzeichnis+XMLFileName);
IF DateiOffen THEN BEGIN
XMLFile.TEXTMODE(TRUE);
XMLFile.WRITE('<?xml version="1.0" encoding="utf-8"?>');
XMLFile.WRITE('<xml-data xmlns="http://www.lucom.com/ffw/xml-data-1.0.xsd">');
XMLFile.SEEK(XMLFile.POS-2);
XMLFile.WRITE('<form>catalog://Unternehmen/ust/ZM_Formular_online</form>');
XMLFile.SEEK(XMLFile.POS-2);
...
10. Juli 2009 14:01
//XMLDom Codeunit XML DOM Management
//XMLDomDoc Automation 'Microsoft XML, v3.0'.DOMDocument
//XMLDomNode Automation 'Microsoft XML, v3.0'.IXMLDOMNode
//Newchild Automation 'Microsoft XML, v3.0'.IXMLDOMElement
IF NOT CREATE(XMLDomDoc) THEN
EXIT;
XMLDomDoc.loadXML := '<ATLAS/>';
XMLDomNode := XMLDomDoc.documentElement;
Newchild := XMLDomDoc.documentElement;
IF XMLDom.AddElement(Newchild, 'Nachricht', '', '', XMLDomNode) > 0 THEN
EXIT;
IF XMLDom.AddElement(XMLDomNode, 'Zollnummer_Sender', '321', '', Newchild) > 0 THEN
EXIT;
IF XMLDom.AddElement(XMLDomNode, 'Nachrichten_Typ', 'DEXPDA', '', Newchild) > 0 THEN
EXIT;
IF XMLDom.AddElement(XMLDomNode, 'BEO_Atlas_KundenID', '651651', '', Newchild) > 0 THEN
EXIT;
XMLDomDoc.save('c:\stream.xml');
<BEO_ATLAS>
<NACHRICHT>
<ZOLLNUMMER_SENDER>321</ZOLLNUMMER_SENDER>
<NACHRICHTEN_TYP>DEXPDA</NACHRICHTEN_TYP>
<BEO_ATLAS_KUNDENID>651651</BEO_ATLAS_KUNDENID>
</NACHRICHT>
</BEO_ATLAS>
10. Juli 2009 15:59
Name DataType Subtype Length
XMLDOMDocument Automation 'Microsoft XML, v3.0'.DOMDocument
CurrNode Automation 'Microsoft XML, v3.0'.IXMLDOMNode
NewChild Automation 'Microsoft XML, v3.0'.IXMLDOMNode
XMLDOMManagement Codeunit XML DOM Mgmt.
DocNameSpace Text 200
CLEAR(XMLDOMDocument);
IF NOT CREATE(XMLDOMDocument) THEN
EXIT(FALSE);
XMLDOMDocument.loadXML := '<ATLAS/>';
CurrNode := XMLDOMDocument.documentElement;
DocNameSpace := '';
WITH XMLDOMManagement DO BEGIN
///////////
//NACHRICHT
///////////
IF AddElement(CurrNode,'Nachricht','',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := NewChild; // Neues Child damit die kommenden Elemente alle in Nachricht sind
IF AddElement(CurrNode,'FELD','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
IF AddElement(CurrNode,'FELD2','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
IF AddElement(CurrNode,'FELD3','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := NewChild; // neues Child damit die kommenden Felder in FELD3 sind
IF AddElement(CurrNode,'FELD','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := CurrNode.parentNode; // zurück springen mit CurrNoce in Nachricht
IF AddElement(CurrNode,'FELD','WERT',DocNameSpace,NewChild) > 0 THEN // ist wieder im Element Nachricht
EXIT(FALSE);
CurrNode := CurrNode.parentNode; // aus NAchricht rausspringen
//////
//KOPF
//////
IF AddElement(CurrNode,'Kopf','',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := NewChild; // in Kopf reinspringen
IF AddElement(CurrNode,'FELD','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := CurrNode.parentNode; // rausspringen aus Kopf
///////
//WAREN
///////
IF AddElement(CurrNode,'Waren','',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := NewChild; // reinspringen in Waren
IF AddElement(CurrNode,'FELD','WERT',DocNameSpace,NewChild) > 0 THEN
EXIT(FALSE);
CurrNode := CurrNode.parentNode; // rausspringen aus Waren
XMLDOMDocument.save(Path); // speichern
END;
10. Juli 2009 16:55
Perfi hat geschrieben:Hallo Django,
Oder hast Du vielleicht im Internet vernüftige Quellen gefunden?
13. Juli 2009 15:24