Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst XML-Inhalt austauschen

Mitglied: noscript

noscript (Level 1) - Jetzt verbinden

09.01.2018, aktualisiert 30.01.2018, 762 Aufrufe, 10 Kommentare, 3 Danke

Hallo zusammen

Nachdem ich nun das komplette Internet gefühlt zwei Mal gelesen, aber nicht kapiert habe, versuch ichs nun auf diesem Weg.

Meine Ausgangslage:
Ich kriege täglich mehrere XML's angeliefert welche in Zeile 15 folgenden Inhalt haben " <ProviderId>www.sda-ats.ch</ProviderId>"
In dieser Zeile muss ich den Wert "www.sda-ats.ch" auf "RDO" ändern.
Das Batch soll alle paar Sekunden eine Abfrage starten, falls neue Files angeliefert wurden. Aber das kann ich ja dann über die Aufgabenplanung lösen.
Sprich es geht eigentlich nur um das Austauschen des Inhalts.

Mein Problem:
Ich hab in diesem Forum so viele Lösungsansätze gesehen, dass ich mittlerweile den Wald vor lauter Bäumen nicht mehr sehe.
Vermutlich ist das für eine Klacks, aber ich steh gerade sowas von auf dem Schlauch..

Grüsse vom Bodensee
Mitglied: 135111
LÖSUNG 09.01.2018 um 17:47 Uhr
Bitte gesamte XML posten, zumindest aber die ersten Zeilen bis zur gewünschten.
Bitte warten ..
Mitglied: noscript
10.01.2018 um 10:17 Uhr
01.
<?xml version="1.0" encoding="ISO-8859-15"?>
02.
<!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20031010:NewsMLv1.2.dtd:1" "NewsML-1.2.dtd"
03.
[<!ENTITY % nitf SYSTEM "nitf-3-0.dtd"> %nitf; ]>
04.
<NewsML>
05.
  <Catalog Href="www.sda.ch/newsml/topics/SDACatalog.xml"/>
06.
  <NewsEnvelope>
07.
    <DateAndTime>20180109T082007+0100</DateAndTime>
08.
    <NewsService FormalName="SDA-ATS News Service"/>
09.
    <NewsProduct FormalName="Regionaldienst Ostschweiz"/>
10.
    <Priority FormalName="3"/>
11.
  </NewsEnvelope>
12.
  <NewsItem>
13.
    <Identification>
14.
      <NewsIdentifier>
15.
        <ProviderId>www.sda-ats.ch</ProviderId>
das ganze XML wäre etwas lang, rund 140 Zeilen.
Bitte warten ..
Mitglied: 135111
LÖSUNG 10.01.2018, aktualisiert um 10:46 Uhr
Hier als Powershell:
01.
$xmlpath = 'C:\data.xml'
02.
$xml = [xml](gc $xmlpath)
03.
$xml.SelectSingleNode("/NewsML/NewsItem[1]/Identification/NewsIdentifier/ProviderId").'#text' = 'RDO'
04.
$xml.Save($xmlpath)
Bitte warten ..
Mitglied: noscript
10.01.2018 um 11:06 Uhr
wenn ich das aufrufe erhalte ich folgenden Meldungen (siehe Screenshot).
xml - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: 135111
LÖSUNG 10.01.2018, aktualisiert um 11:46 Uhr
Du verwendest eine zu alte Powershell. Wurde hier einwandfrei getestet!
Bitte warten ..
Mitglied: 135111
LÖSUNG 10.01.2018, aktualisiert um 12:23 Uhr
Wenn du eine ältere Powershell hast kannst du es auch so machen:
01.
$xmlpath = 'C:\data.xml'
02.
$xml = New-Object XML
03.
$xml.XmlResolver = $null
04.
$xml.Load($xmlpath)
05.
$xml.SelectSingleNode("/NewsML/NewsItem[1]/Identification/NewsIdentifier/ProviderId").'#text' = 'RDO'
06.
$xml.Save($xmlpath)
Oder hier noch die Variante via VBS falls dir Powershell nicht liegt...
01.
Const PATH = "C:\data.xml"
02.
Set xml = CreateObject("MSXML2.DomDocument.6.0")
03.
xml.resolveExternals = False
04.
xml.setProperty "ProhibitDTD",False
05.
xml.validateOnParse = False
06.
xml.async = False
07.
xml.load(PATH)
08.
If xml.parseError.errorCode  <> 0 Then
09.
	MsgBox xml.parseError.reason & vbNewline & "Line: " & xml.parseError.line & "# Position: " & xml.parseError.linepos
10.
End If
11.
Set node = xml.selectSingleNode("/NewsML/NewsItem[1]/Identification/NewsIdentifier/ProviderId")
12.
If Not node Is Nothing Then
13.
	node.text = "RDO"
14.
	xml.save PATH
15.
End If
Bitte warten ..
Mitglied: noscript
10.01.2018 um 13:41 Uhr
Hallo Fuerte

Hab die Powershell aktualisiert (von 2 auf 4) und nun läufts einwandfrei!

Eine Frage hätte ich noch.
Wenn ich nun mehrere Files mit unterschiedlichen Filenamen habe, wie löse ich das?
Meine Logik würds dann so lösen, was natürlich nicht funktioniert:
01.
$xmlpath = '$xmlpath = 'D:\*.xml' 
Bitte warten ..
Mitglied: 135111
10.01.2018, aktualisiert um 13:48 Uhr
Warum nicht gleich ...Mit Get-ChildItem die Dateien auflisten und dann eine Foreach-Schleife drum pappen.

01.
gci 'c:\*.xml' -File | %{
02.
    $xml = New-Object XML
03.
    $xml.XmlResolver = $null
04.
    $xml.Load($_.Fullname)
05.
    $xml.SelectSingleNode("/NewsML/NewsItem[1]/Identification/NewsIdentifier/ProviderId").'#text' = 'RDO'
06.
    $xml.Save($_.Fullname)
07.
}
Bitte warten ..
Mitglied: noscript
10.01.2018 um 13:58 Uhr
vielen vielen Dank, Fuerte!
Bitte warten ..
Mitglied: noscript
30.01.2018 um 10:56 Uhr
habe noch eine zusatzfrage.

01.
<?xml version="1.0" encoding="ISO-8859-15"?>
02.
<!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20031010:NewsMLv1.2.dtd:1" "NewsML-1.2.dtd"[<!ENTITY % nitf SYSTEM "nitf-3-0.dtd"> %nitf; ]>
03.
<NewsML>
04.
  <Catalog Href="www.sda.ch/newsml/topics/SDACatalog.xml" />
05.
  <NewsEnvelope>
06.
    <DateAndTime>20180109T082007+0100</DateAndTime>
07.
    <NewsService FormalName="SDA-ATS News Service" />
08.
    <NewsProduct FormalName="Regionaldienst Ostschweiz" />
09.
    <Priority FormalName="3" />
10.
  </NewsEnvelope>
wenn ich hier die zeile 7 bearbeiten möchte, was muss ich da tun?
möchte auch hier den text von "SDA-ATS News Service" zu "Schweiz" ändern.
habe versucht das script oben anzupassen. kriegs aber nicht hin.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
XML-Inhalt austauschen V2
gelöst Frage von noscriptBatch & Shell2 Kommentare

hi mit folgendem Script bearbeite ich xml's welche in einem ordner abgelegt sind. nun möchte ich das script so ...

VB for Applications

Inhalt einer XML Datei Script ändern

gelöst Frage von chris27584VB for Applications4 Kommentare

Hallo zusammen, in folgendem Script <?xml version="1.0"?> -<SkClientConfig xmlns:xsi=" xmlns:xsd=" <LastServerIndex>1</LastServerIndex> <LastUser>11111</LastUser> <LastWorkplace>2358</LastWorkplace> -<SerializableFont> <FontValue>Microsoft Sans Serif; 8,25pt</FontValue> </SerializableFont> ...

Batch & Shell

PowerShell - XML bestimmte Node auslesen und Inhalt ersetzen

gelöst Frage von Pat.batBatch & Shell8 Kommentare

Hallo zusammen, ich versuche gerade eine generierte xml Datei per Powershell abzuändern, bzw ein bestimmtes Node muss geändert werden, ...

XML

Inhalt einer .xml Datei ändern mit Batch File

Frage von JJSchumacherXML10 Kommentare

Hallo Zusammen, Ich habe eine kleine Datei activeSite.xml mit folgendem Inhalt: Diese würde ich gerne mit einem .bat (Batch) ...

Neue Wissensbeiträge
Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 7 StundenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 7 StundenExchange Server

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 8 StundenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 3 TagenVoice over IP7 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Heiß diskutierte Inhalte
Windows Server
Drucker auf dem Terminalserver 2016 via Printserver wird nicht angezeigt
Frage von EchterHansenWindows Server14 Kommentare

Moin Moin, ich habe hier zwei 2016er Terminalserver und einen 2016er Printserver, auf dem ca. 10 RICOH-Drucker Typ 4. ...

Hardware
Ncomputing N600 oder auch 600W Privat nutzen Kostenlos oder kostengünstig
gelöst Frage von PlerTanixHardware14 Kommentare

Hallo liebe Forum User, Ich habe da eine Frage. Ich bin Azubi im dritten Lehrjahr und bei uns in ...

Windows 10
Upgrade Windows 10 1903 und Office 2010 Problem mit Userzertifikaten
gelöst Frage von Looser27Windows 1012 Kommentare

Guten Morgen, ich habe bei uns ein Phänomen in o.g. Kombination festgestellt, welches nach dem Inplace-Upgrade auf 1903 auftritt. ...

Datenschutz
Onedrive, Dropbox, Google Drive und Co. sperren?
Frage von holliknolliDatenschutz10 Kommentare

Hallo, wir haben folgendes Problem: die oben gennannten Cloud-Storages. Die wollen wir für Mitarbeiter sperren, damit kein Wildwuchs entsteht, ...