none
Text in XML-Datei nummerieren RRS feed

  • Frage

  • Hallo,

    ich muss in XML-Dateien den Namen "port" umbenennen in "port1", "port2", "port3" usw. je nachdem, wie oft es auftaucht.

     <entries name="ports">
                        <entries name="port">
                             <entry name="external_name" type="string">External Monitor</entry>
                             <entry name="internal_name" type="string">Not Available</entry>
                             <entry name="type" type="string">Video Port</entry>
                             <entry name="connector_type" type="string">DB-15 female</entry>
                        </entries>
                        <entries name="port">
                             <entry name="external_name" type="string">DisplayPort</entry>
                             <entry name="internal_name" type="string">Not Available</entry>
                             <entry name="type" type="string">Video Port</entry>
                             <entry name="connector_type" type="string">Other</entry>
                        </entries>
                        <entries name="port">
                             <entry name="external_name" type="string">Headphone/Microphone Combo Jack</entry>
                             <entry name="internal_name" type="string">Not Available</entry>
                             <entry name="type" type="string">Audio Port</entry>
                             <entry name="connector_type" type="string">Mini Jack (headphones)</entry>

    Ist das mit PowerShell machbar? Wenn ja, wie müsste das Script aussehen?

    Vorab schon mal vielen Dank für eure Mühe!

    Gruß Chris

    Donnerstag, 2. März 2017 15:53

Antworten

Alle Antworten

  • Schau mal hier.
     

    Gruß, Denniver


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Freitag, 3. März 2017 03:42
    Moderator
  • Hallo Denniver,

    bin leider noch ein Anfänger.

    Wie kann ich von Wort zu Wort springen und jedes Mal eine andere Änderung (...1, ...2, ...3) vornehmen?

    Gruß Chris

    Freitag, 3. März 2017 07:56
  • Hallo,

    du kannst in dem Sinne nicht von Wort zu Wort "springen". Wenn du das Dokument einfach nur als Rohtext bearbeiten willst (ich hoffe, das reicht bei xml), musst du es Zeile für Zeile durchgehen. Das sähe etwa so aus:

    $Zeilen = Get-Content "Pfad/ZU/Deiner/Datei.xml"
    
    $Zähler = 1
    foreach($z in $Zeilen)
    {
        if($z -match '"port"')
        {
            $z -replace '"port"', ("port" + $Zähler)
            $Zähler++
        }
    }
    
    $Zeilen | Out-File "Neuer/Pfad/Zur/Ausgabedatei.xml"

    Freitag, 3. März 2017 10:47
  • Sorry aber das ist keine Scriptfabrik hier. Wir helfen dir gerne, aber du musst schon etwas mitmachen.
    Dazu gehört bei XML, zumindest die wichtigsten Grundlagen zu verstehen. Die kannst du über den wirklich sehr kurzen und übersichtlichen Artikel im Link oben lernen.
    Darüber hinaus gibt es dann buchstäblich hunderte Beispiele im Netz die exakt deine Aufgabe abhandeln. Z.b. LINK

    Denniver


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.


    Freitag, 3. März 2017 11:11
    Moderator
  • Danke, jetzt habe ich eine Idee und werde mir erst mal die Grundlagen anschauen.
    Freitag, 3. März 2017 13:41