xml editor

Pozdrav,
delam na projektu, kjer imamo kopico (okoli 5.000) xml datotek. Za nekatere sklope bi potreboval xml editor, ki bi mi lahko sistemsko spreminjal določene nastavitve v izbranih datotekah hkrati - npr. barvo ozadja pri 50 xml datotekah - neke vrste funkcija find-replace.
Kateri program mi priporočate?
Hvala.

Komentarji

  • Ne morem ugotoviti, kako bi spremenil tole:

    Find: r2">
    Replace: r2" type="other">

    Ker se številka 2 spreminja – je lahko od 1-100 in več.
    Črka r pa ostaja.

    Tako da imam lahko npr. primere:
    Find:
    Replace:


    Find:
    Replace:


    Find:
    Replace:

    Kaj priporočate?
  • Če poznaš regularne izraze (regular expressions), lahko z njimi rešiš. Odpreš z LibreOffice Writer, odpreš "Najdi in zamenjaj", klikneš "Dodatne možnosti" in označiš "Regularni izrazi".
  • Jah..to bi lahk rešu tudi s kako javo/c# ..kjer maš DOM parser ter nato bereš /spreminjaš xml-je

    Druge ideje za tako veliko število XML dokumentov nimam..mogoče edino kaka bash skripta ter sed
  • david_ozura Član
    uredil/-a 10. September, 2011
    Hvala za prvi odgovor. Sem našel pravi regular expression za barvo ozadja, fonte, npr. bgColour="[^y].

    Ne znam pa razvozlati sledečega:
    Kako bi v xml fileu poiskal in izbrisal vse odvečne presledke, ko gre besedilo(tekst) v novo vrsto?

    Npr.
    Tole je vzorčni tekst, ki naj
    bi pokazal, kako se vrstice lo-
    mijo in vsebujejo napake.

    V prvi vrstici je odveč presledek za besedo naj
    V drugi vrstici odvečen presledek za besedo lo-

    Hvala za odgovor.
  • Spet lahko uporabiš regex. Poišči znak za novo vrstico, \n, med in ter ga zamenjaj s presledkom.
  • Bi lahko prosil za celotno regex besedilo/ukaz, da mi poišče odvečne presledke na koncu vrstice besedila. Sam ga namreč ne znam sestaviti.
    hvala.
  • sem jo našel, povsem preprosta je: [ ]\n
  • david_ozura Član
    uredil/-a 20. September, 2011
    še vedno me muči in ne znam razvozlati na preprost način:

    Find: 2">
    Replace: 2" type="other">

    Ker se številka 2 spreminja – je lahko od 1-100 in več.
    Črka r pa ostaja.

    oz.
    find:
    replace:



    Tako da imam lahko npr. primere:
    Find:
    Replace:

    Find:
    Replace:

    Find:
    Replace:

    Kaj priporočate?

    Enako težavoi imam potem tudi za:
    find:
    replace:
  • r[1-9]|[1-9][0-9]|[1-9][0-9][0-9] tole ni ravno najbolši primer (ne spoznam se ravno na regex) ampak moglo bi pa delat :)

    tole (naj bi) iskalo r 1-9 nato od 10-99 in nato še od 100-999
  • žal ne bo šlo, ker replace natanko tisto, kar mu zapišeš. :(

    tako mi replacea sledeče:
    [0-9]*" type="other">

    v tvojem primeru bi bilo potem:
    [1-9]|[1-9][0-9]|[1-9][0-9][0-9] " type="other">
  • Replace vržeš noter preko kakega \1 \2 itd. parametra. V teh parametrih naj bi namreč bile shranjene spremenljivke, ki jih je regexp našel.
  • R33D3M33R je dejal/-a:
    Replace vržeš noter preko kakega \1 \2 itd. parametra. V teh parametrih naj bi namreč bile shranjene spremenljivke, ki jih je regexp našel.
    Ker nisem programer, bi te prosil, če mi lahko zgornji citat razložiš bolj preprosto. Hvala. Mogoče s kratkim primerom.
  • Zadeva se imenuje backreference, več o tem najdeš tukaj:http://www.regular-expressions.info/brackets.html
  • tule je rešitev:

    Find:()
    Replace:

    končno.
  • Našel sem zelo uporaben program za sestavljanje regularnih izrazov, t.j. txt2regex
    Program uporabniku postavlja vprašanja in vmes sestavlja regularni izraz. Podpira Vim, Emacs, Perl, PHP, Python, Procmail in OpenOffice.org.

    Mogoče komu pride prav.
Za komentiranje se prijavite ali pa se vpišite.