Jump to content

Proll012

Members
  • Content Count

    29
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Proll012

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hallo, Ich versuche mit diesem Programm in der "Root-Node" einen Attributwert zu löschen bzw. durch nichts zu ersetzen. Ich habe auch schon andere Wege ausprobiert aber die haben nicht Funktioniert. Folgendes Skript schafft es wenigstens die Datei erfolgreich zu bearbeiten, wenn nur eine Datei im Verzeichnis liegt. $quellpfad ="C:\Users\Oho\Desktop\LinkEntfernerTest" $XmlData = get-ChildItem $quellpfad "*.xml" Foreach-Object{ $XMLFile = get-content $XmlData.Fullname $NewRawXML = $XMLFile|%{ if ($_ -match '\<BMECAT\s*'){ $_ -replace '\s*xmlns\=".*"','' } else{
  2. Nicee danke dir, $quellpfad ="C:\Users\MeinName\Desktop\Experiment,Test" $XmlData = get-ChildItem $quellpfad "*.xml" -Recurse foreach ($xmlobject in $XmlData) { [xml]$xml = get-content $xmlobject.Fullname foreach ($Feature in ($xml.BMECAT.T_NEW_CATALOG.PRODUCT.PRODUCT_FEATURES).FEATURE ) { if ($Feature.FVALUE -match ";") { $SplittedFVALUE = ($Feature.FVALUE -split ';').trim() foreach ($Value in $SplittedFVALUE) { $child = $xml.CreateNode("element", "FVALUE", " ") $child.InnerText = $Value $Feature.AppendChild($child)
  3. Gesagt, getan. $quellpfad ="C:\Users\MeinName\Desktop\XmlFutterTest" $XmlData = get-ChildItem $quellpfad "=.xml" -Recurse foreach ($xmlobject in $XmlData) { [xml]$xml = get-content $xmlobject.Fullname foreach ($Feature in ($xmlobject.BMECAT.T_NEW_CATALOG.PRODUCT.PRODUCT_FEATURES).FEATURE ) { if ($Feature.FVALUE -match ";") { $SplittedFVALUE = ($Feature.FVALUE -split ';').trim() foreach ($Value in $SplittedFVALUE) { $child = $xmlobject.CreateNode("element", "FVALUE", " ") $child.InnerText = $Value $Feature.AppendChild($chil
  4. Von dir aus betrachtet ja ganz sicher Von mir aus gesehen besteht Hoffnung Lese die gerade:) Auch schon was gefunden:D
  5. Leute was soll ich sagen Ich dachte ich bin ganz knapp vor der Lösung Und während ich vor 2 Wochen noch gar nichts verstanden habe, versteh ich jetzt doch schon deutlich mehr. :))
  6. Puh keine Ahnung welche Variable ich dann angeben muss, damit der jede eingespielten Datei unter dem eingespielten Namen in ein anderes Verzeichnis speichert.:( Da bin ich mir sicher ... $files = Get-ChildItem C:\Users\sluet\Desktop\XmlFutterTest -Recurse *.xml Foreach-Object { [xml]$XmlData = Get-Content $files } foreach ($Feature in ($XmlData.BMECAT.T_NEW_CATALOG.PRODUCT.PRODUCT_FEATURES).FEATURE ) { if ($Feature.FVALUE -match ";") { $SplittedFVALUE = ($Feature.FVALUE -split ';').trim() foreach ($Value in $SplittedFVALUE) { $child = $Xml
  7. Das war nur ein Beispiel, das wäre $NewRawXML im oben genannten Skript. Und darin sollte soweit ich richtig verstehe die überarbeitete Datei drin stehen. Der Link von BMECAT muss raus dann erkennt PowerShell das als richtiges xml. Ergo wird FVALUE beim ";" gesplittet neu verknotet und der alte FVALUE wird dann auch gelöscht. Es geht mir aber gar nicht so sehr darum. Die Links manuell raus zu Löschen ist nicht so das Problem. Viel mehr das manuelle eintragen einzelner Dateien. Haben zu Soll Pfad. Aber ich versuche das nochmal, wenn ich richtig
  8. Ja das weiß ich mittlerweile. Ich habe auch versucht das mit Variablen zu Speichern. Aber wenn ich z.B. $XmlData.Save($FinishedXml) Eintrage passiert nichts und ich weiß nicht wie ich das sonst schreiben soll/kann.
  9. Achso, ok danke, dann Funktioniert mein Skript nicht so wie erhofft..:D Wenn du sagen magst/kannst, wie mache ich das denn, dass der jede gezogene Datei einzeln durch die Prüfung schickt?
  10. Moin Nils, hmm, ich bin ziemlich neu in dem Thema. Kann sein das ich etwas will das so nicht funktioniert. Ich habe 3 Dateien in dem Verzeichnis. Und die sollen alle durch die Prüfung und dann wieder in einzelne Dateien zurück. C:\Users\Myname\Desktop\Auobearbeitungtest Ich bin davon ausgegangen, das mir nur der Code zum Speichern in einzelne Dateien fehlt.
  11. Guten Tag, Ich bin dabei xml Daten aus einem Verzeichnis einzulesen und diese zu bearbeiten. Jedoch weiß ich nicht und finde nichts wie ich diese einzeln wieder Speicher. $files = Get-ChildItem C:\Users\Myname\Desktop\Auobearbeitungtest -Recurse *.xml | Foreach-Object { [xml] $content = Get-Content $_.FullName } $NewRawXML=$content|%{ if ($_ -match '\<BMECAT\s*'){ $_ -replace '\s*xmlns\=".*"','' } else{ $_ }} Wenn ich die Dateien einzeln einspiele und einzeln wieder ausspiele geht natürlich alles wunderbar. Aber wie mache ich das hier? In der Orig
  12. Ne, das läuft super. O.o ok, so funktioniert es -<BMECAT> und wie unten nicht. -<BMECAT xml:lang="de" xmlns="http://www.bmecat.org/bmecat/2005fd" version="2005"> das Problem ist der Link. Ich versuche den jetzt direkt am Anfang zu löschen. Soweit ich Richtig verstehe, ist das ein Attribut in dem Element.
  13. Danke dir:) Habe deine xml gerade ausgeführt und dann tuts bei mir auch, aber ich weiß nicht wo der große unterschied zu dieser ist <?xml version="1.0" encoding="UTF-8"?> -<BMECAT xml:lang="de" xmlns="http://www.bmecat.org/bmecat/2005fd" version="2005"> -<T_NEW_CATALOG> -<PRODUCT> -<PRODUCT_FEATURES> <REFERENCE_FEATURE_GROUP_NAME>Test12</REFERENCE_FEATURE_GROUP_NAME> -<FEATURE> <FNAME>Marke</FNAME> <FVALUE>Test1;Test11</FVALUE> <FORDER>10</FORDER> <FVALUE_DETAI
  14. Das wollte ich auch nicht bestreiten, dachte vielleicht kennst du das Problem :/
  15. Wenn ich das ausführe kommt eine Fehlermeldung: [Ausnahme beim Aufrufen von "RemoveChild" mit 1 Argument(en): "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."]
×
×
  • Create New...