XMLStarlet

XMLStarlet
Oryginalni autorzy Dagobert Michelsen, Noam Postavsky, Michaił Gruszyński
Pierwsze wydanie 8 lutego 2005 ; 18 lat temu ( 08.02.2005 )
Wersja stabilna
1.6.1 / 9 sierpnia 2014 ; 8 lat temu ( 09.08.2014 )
Napisane w C
System operacyjny Unix-like , Windows, CygWin, Mac OS
Typ Parser XML
Licencja Licencja MIT
Strona internetowa xmlstar .sourceforge .net

XMLStarlet to zestaw narzędzi wiersza poleceń (zestaw narzędzi) do wykonywania zapytań, przekształcania, weryfikowania i edytowania dokumentów i plików XML przy użyciu prostego zestawu poleceń powłoki w sposób podobny do tego, jak to się robi w systemach UNIX grep, sed, awk, diff, komendy patch, join itp.

Ten zestaw narzędzi wiersza poleceń może być używany przez tych, którzy chcą testować zapytania XPath lub wykonywać polecenia w locie, a także zajmować się wieloma dokumentami XML lub zautomatyzowanym przetwarzaniem XML za pomocą skryptów powłoki.

Aby uruchomić narzędzie XMLStarlet, możesz pobrać je z oficjalnej strony, a następnie po prostu wpisać „ xml ” w wierszu poleceń z odpowiednimi poleceniami lub zapytaniami do wykonania (patrz #Przykłady poniżej).

Cechy

Zestaw funkcji zestawu narzędzi obejmuje następujące opcje:

  • Sprawdź lub zatwierdź pliki XML (prosta kontrola poprawności, DTD, XSD, RelaxNG)
  • Oblicz wartości wyrażeń XPath w plikach XML (takich jak sumy bieżące itp.)
  • Przeszukuj pliki XML pod kątem dopasowań do podanych wyrażeń XPath
  • Zastosuj arkusze stylów XSLT do dokumentów XML (w tym obsługę EXSLT i przekazywanie parametrów do arkuszy stylów)
  • Zapytanie o dokumenty XML (np. zapytanie o wartość niektórych elementów atrybutów, sortowanie itp.)
  • Modyfikuj lub edytuj dokumenty XML (np. usuwaj niektóre elementy)
  • Formatuj lub „upiększaj” dokumenty XML (jako zmiana wcięcia itp.)
  • Pobierz dokumenty XML przy użyciu adresów URL http:// lub ftp://
  • Przeglądaj strukturę drzewa dokumentów XML (podobnie jak komenda 'ls' dla katalogów)
  • Dołącz jeden dokument XML do drugiego za pomocą XInclude
  • Kanonizacja XML c14n
  • Uciekaj/unikaj znaczenia specjalnych znaków XML w tekście wejściowym
  • Wydrukuj katalog jako dokument XML
  • Konwertuj XML na format PYX (oparty na ESIS - ISO 8879 ) i odwrotnie.

Narzędzie wiersza poleceń XMLStarlet jest napisane w C i używa bibliotek libxml2 i libxslt . Implementacja szerokiego wyboru opcji narzędzia XMLStarlet była możliwa tylko dzięki bogatemu zestawowi funkcji obu bibliotek: libxml2 i libxslt. XMLStarlet jest statycznie połączony zarówno z libxml2, jak i libxslt, więc generalnie wszystko, czego potrzebujesz do przetwarzania dokumentów XML, to jeden plik wykonywalny.

XMLStarlet to bezpłatne oprogramowanie typu open source wydane na licencji MIT , które umożliwia bezpłatne użytkowanie i dystrybucję zarówno w projektach komercyjnych, jak i niekomercyjnych.

Przykłady

Rozważ następujący przykład dokumentu XML „xmlfile1.xml”:



  
      
      
         
         
          <?xml version="1.0" encoding="utf-8"?>  <wikimedia>  <projekty> <   nazwa  projektu =   "Wikipedia"  launch=  "2001-01-05"  >  <wydania>  <język wydania  =  "Angielski"  >  pl.wikipedia.org  </edition>  <edition  language=  "niemiecki"  >  de.wikipedia.org  </edition>  <edition  language=  "francuski"  > 
         
         
      
    
      
      
          fr.wikipedia.org  </edition>  <edition  language=  "polski"  >  pl.wikipedia.org  </edition>  <edition  language=  "hiszpański"  >  es.wikipedia.org  </edition>  </editions>  </project >  <  nazwa projektu=  "Wiktionary"  launch=  "2002-12-12"  >  <wydania> <   język  wydania =   "Angielski"  >  en.wiktionary.org 
         
         
         
         
      
     </edition>  <edition  language=  "francuski"  >  fr.wiktionary.org  </edition>  <edition  language=  "wietnamski"  >  vi.wiktionary.org  </edition>  <edition  language=  "turecki"  >  tr.wiktionary. org  </edition>  <edition  language=  "hiszpański"  >  es.wiktionary.org  </edition>  </editions>  </project> 
      
     
         
     
    
  
 <project  name=  "Wikileaks"  launch=  "2006-10-04"  >  <edycje>  <edition  language=  "English"  >  en.wikileaks.org  </edition>  </editions>  </project>  </projects>  < /wikimedia> 

W wierszu polecenia wykonywanych jest pięć następujących zapytań XPath dotyczących powyższego pliku XML „xmlfile1.xml”.

  • Przykład 1: Wyrażenie XPath do wybierania wszystkich atrybutów nazw dla wszystkich projektów.


 $  xmlstarlet sel -t -v  "//wikimedia/projects/project/@name"  xmlfile1.xml  Wikipedia  Wikisłownik  Wikileaks 
  • Przykład 2: Wyrażenie XPath do wybrania wszystkich atrybutów ostatniego projektu Wikimedia.

 $  xmlstarlet sel -t -v  "/wikimedia/projects/project[last()]/@*"  xmlfile1.xml  Wikileaks  2006-10-04 
  • Przykład 3: Wyrażenie XPath do wybierania adresów wszystkich wydań Wikisłownika (tekst wszystkich elementów wydania, które istnieją w elemencie projektu z atrybutem name Wikisłownika).




 $  xmlstarlet sel -t -v  "/wikimedia/projects/project[@name='Wiktionary']/editions/edition"  xmlfile1.xml  en.wiktionary.org  fr.wiktionary.org  vi.wiktionary.org  tr.wiktionary.org  es.wiktionary.org 
  • Przykład 4: Wyrażenie XPath do wybierania adresów wszystkich wydań Wikimedia Wikisłownika, które mają języki inne niż turecki i hiszpański (wszystkie NIE tureckie i nie hiszpańskie).


 $  xmlstarlet sel -t -v  "/wikimedia/projects/project[@name='Wiktionary']/editions/edition[@language!='turecki' and @language!='hiszpański']"  xmlfile1.xml  en.wiktionary .org  fr.wiktionary.org  vi.wiktionary.org 
  • Przykład 5: Wyrażenie XPath do wybierania wszystkich atrybutów wydań, których pozycja jest większa lub równa 3 na liście wydań.





 $  xmlstarlet sel -t -v  "/wikimedia/projects/project/editions/edition[position() >= 3]/@*"  xmlfile1.xml  francuski  polski  hiszpański  wietnamski  turecki  hiszpański 

Dokument XML można zweryfikować względem schematu XSD zapisanego w pliku „xsdfile.xsd” w następujący sposób:

 $  xmlstarlet val -e -s xsdfile.xsd xmlfile1.xml  xmlfile1.xml - poprawny 

Zobacz też

  • XML (Extensible Markup Language) to język znaczników, który definiuje zestaw reguł kodowania dokumentów w formacie czytelnym zarówno dla człowieka, jak i dla maszyny.
  • XPath (XML Path Language) to język zapytań do wybierania węzłów z dokumentu XML.
  • XSLT (Extensible Stylesheet Language Transformations) to język do przekształcania dokumentów XML w inne dokumenty XML lub inne formaty, takie jak HTML dla stron internetowych, zwykły tekst itp.
  • Definicja typu dokumentu (DTD) definiuje prawne bloki konstrukcyjne dokumentu XML.

Notatki

Linki zewnętrzne