Kirjoittaja Aihe: XML-tiedosto lukukelpoiseksi.  (Luettu 2632 kertaa)

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
XML-tiedosto lukukelpoiseksi.
« : 28.10.16 - klo:19.22 »
Lyhyt php-scripti, kun en ole löytänyt kyseistä tarpeellista ohjelmaa pakettien hallinnasta...

Tiedosto: xml2readable.php
Koodia: [Valitse]
<?php
$s
="";
if(isset(
$argv[1])) $s=$argv[1];
if(
strlen($s)>0) {
    
$tab=-1;
    
$tabbi=0;
    
$f=fopen($s,'r');
    
$xml=fread($f,filesize($s));
    
fclose($f);
    if(isset(
$argv[2])) $s=$argv[2];
    else 
$s='/dev/stdout';
    
$f=fopen($s,'w');
    while (
strpos($xml,'>')!==FALSE) {
        
$tabbi=0;
        
$i=strpos($xml,'>');
        
$endtag=strpos($xml,'</');        
        
$startendtag=strpos($xml,'/>');
        if((
$endtag!==FALSE)&&($endtag<$i)) {
            
$tab--;
            
$tabbi=2;
        } 
        for(
$j=0;$j<$tab;$j++) {
            
fwrite($f"    ");
        }
        if(
$tabbi==0)
            if((
$startendtag===FALSE)||($startendtag>$i)) {
                
$tab++;
            }
        
fwrite($f,trim(substr($xml,0,strpos($xml,'>')+1)));
        
$xml=substr($xml,strpos($xml,'>')+1);
        
fwrite($f,"\n");
    }
    
fclose($f);
} else print 
"Käyttö: php xml2readable.php xmlfilename.xml [readable.xml]\n";
?>


Onko vastaavaa ohjelmaa pakettienhallinnassa ?

Lisenssi: Public Domain

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: XML-tiedosto lukukelpoiseksi.
« Vastaus #1 : 28.10.16 - klo:19.47 »
Onko vastaavaa ohjelmaa pakettienhallinnassa ?

On useitakin vaihtoehtoja:
http://stackoverflow.com/questions/16090869/how-to-pretty-print-xml-from-the-command-line/16090892#16090892

libxml2-utils -paketin xmllint-ohjelmaa olen itse yleensä käyttänyt tuohon:

Koodia: [Valitse]
xmllint --format tiedosto.xml

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: XML-tiedosto lukukelpoiseksi.
« Vastaus #2 : 28.10.16 - klo:19.59 »
libxml2-utils -paketin xmllint-ohjelmaa olen itse yleensä käyttänyt tuohon:

Koodia: [Valitse]
xmllint --format tiedosto.xml

Jaahas kysymällä olisi siitäkin selvinnyt nopeammin. No eihän ton tekemiseenkään kauaa kestänyt, joten ei haittaa.

Kiitoksia kuitenkin...