XML-Datei, Knoten an einer bestimmten Stelle automatisch hinfügen
Hallo zusammen,
ich stehe vor dem Problem einen Konten automatisch in einer XML-Datei hizuzufügen. Dafür müsste sicher ein Script geschrieben werden. Nun weiß ich nicht wie das am besten realisiert werden kann. Hat vielleicht jemand eine Idee oder eine Script-Vorlage?
In die Datei müsste dieser Knoten <InstrForDbtrAgt>/CONFIDENTIAL/Y</InstrForDbtrAgt> , an dieser Stelle eingefügt werden:
<CdtrAcct>
<Id>
<IBAN>DE99999999999999999999</IBAN>
</Id>
</CdtrAcct>
<InstrForDbtrAgt>/CONFIDENTIAL/Y</InstrForDbtrAgt>
<Purp>
<cd>SALA</cd>
Dei Datei kann aus der Hauptanwendung nicht anders ausgegebene werden.
Gesamte Datei:
ich stehe vor dem Problem einen Konten automatisch in einer XML-Datei hizuzufügen. Dafür müsste sicher ein Script geschrieben werden. Nun weiß ich nicht wie das am besten realisiert werden kann. Hat vielleicht jemand eine Idee oder eine Script-Vorlage?
In die Datei müsste dieser Knoten <InstrForDbtrAgt>/CONFIDENTIAL/Y</InstrForDbtrAgt> , an dieser Stelle eingefügt werden:
<CdtrAcct>
<Id>
<IBAN>DE99999999999999999999</IBAN>
</Id>
</CdtrAcct>
<InstrForDbtrAgt>/CONFIDENTIAL/Y</InstrForDbtrAgt>
<Purp>
<cd>SALA</cd>
Dei Datei kann aus der Hauptanwendung nicht anders ausgegebene werden.
Gesamte Datei:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>1111111333</MsgId>
<CreDtTm>2017-09-11T13:15:24.000+02:00</CreDtTm>
<NbOfTxs>2</NbOfTxs>
<CtrlSum>198.00</CtrlSum>
<InitgPty>
<Nm>TEST GMBH</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>1111111333</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<BtchBookg>true</BtchBookg>
<NbOfTxs>2</NbOfTxs>
<CtrlSum>198.00</CtrlSum>
<PmtTpInf>
<SvcLvl>
<cd>SEPA</cd>
</SvcLvl>
</PmtTpInf>
<ReqdExctnDt>2017-09-12</ReqdExctnDt>
<Dbtr>
<Nm>TEST GMBH</Nm>
<PstlAdr>
<Ctry>DE</Ctry>
<AdrLine>Musterstrasse</AdrLine>
<AdrLine>99999 Stadt</AdrLine>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>DE99999999999999999999</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>BANK000000</BIC>
</FinInstnId>
</DbtrAgt>
<ChrgBr>SLEV</ChrgBr>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>1111111333-0000001</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">99.00</InstdAmt>
</Amt>
<Cdtr>
<Nm>Mustermann</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>DE99999999999999999999</IBAN>
</Id>
</CdtrAcct>
<Purp>
<cd>SALA</cd>
</Purp>
<RmtInf>
<Ustrd>Testzahlung 09/2017</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>1111111333-0000002</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">99.00</InstdAmt>
</Amt>
<Cdtr>
<Nm>Musterfrau</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>DE00000000000000000000</IBAN>
</Id>
</CdtrAcct>
<Purp>
<cd>SALA</cd>
</Purp>
<RmtInf>
<Ustrd>Testzahlung 09/2017</Ustrd>
</RmtInf>
</CdtTrfTxInf>
</PmtInf>
</CstmrCdtTrfInitn>
</Document>
Please also mark the comments that contributed to the solution of the article
Content-Key: 351418
Url: https://administrator.de/contentid/351418
Printed on: April 19, 2024 at 06:04 o'clock
5 Comments
Latest comment
Servus Joerg,
wenn's Powershell sein darf:
Grüße Uwe
p.s. Bitte in Zukunft nutze Code-Tags für deinen Quellcode:
wenn's Powershell sein darf:
$xmlpath = 'C:\datei.xml'
$xml = [xml](gc $xmlpath)
[System.Xml.XmlNamespaceManager]$ns = new-Object System.Xml.XmlNamespaceManager $xml.NameTable
$ns.AddNamespace("ns",$xml.DocumentElement.NamespaceURI)
$node = $xml.CreateElement("InstrForDbtrAgt",$xml.DocumentElement.NamespaceURI)
$node.InnerText = "/CONFIDENTIAL/Y"
#$new = $xml.Document.CstmrCdtTrfInitn.PmtInf.CdtTrfTxInf.appendChild($node)
$xml.SelectNodes('/ns:Document/ns:CstmrCdtTrfInitn/ns:PmtInf/ns:CdtTrfTxInf/ns:CdtrAcct',$ns) | %{
$_.parentNode.InsertAfter($node.Clone(),$_)
}
$xml.Save($xmlpath)
Grüße Uwe
p.s. Bitte in Zukunft nutze Code-Tags für deinen Quellcode:
<code> Quellcode </code>
. Merci.
Ausnahmsweise
strPath = "C:\datei.xml"
Set xmldoc = CreateObject("msxml2.domdocument")
xmldoc.Async = False
xmldoc.load(strPath)
xmldoc.setProperty "SelectionLanguage", "XPath"
xmldoc.setProperty "SelectionNamespaces","xmlns:ns='urn:iso:std:iso:20022:tech:xsd:pain.001.001.03'"
Set node = xmldoc.createNode (1,"InstrForDbtrAgt","urn:iso:std:iso:20022:tech:xsd:pain.001.001.03")
node.text = "/CONFIDENTIAL/Y"
Set nodes = xmldoc.selectNodes("/ns:Document/ns:CstmrCdtTrfInitn/ns:PmtInf/ns:CdtTrfTxInf/ns:Purp")
For Each n In nodes
n.parentNode.insertBefore node.cloneNode(True),n
Next
xmldoc.save strPath
Zitat von @joergsworld:
Vielen Dank! Mit der Testdatei hat alles geklappt. Mit der echten kompletten Datei kämpfe ich noch.
Falls du letzten Endes doch nicht klar kommen solltest, melde dich einfach nochmal.Vielen Dank! Mit der Testdatei hat alles geklappt. Mit der echten kompletten Datei kämpfe ich noch.
Grüße Uwe