XMLStarlet
Oryginalni autorzy | Dagobert Michelsen, Noam Postavsky, Michaił Gruszyński |
---|---|
Pierwsze wydanie | 8 lutego 2005 |
Wersja stabilna | 1.6.1 / 9 sierpnia 2014
|
Napisane w | C |
System operacyjny | Unix-like , Windows, CygWin, Mac OS |
Typ | Parser XML |
Licencja | Licencja MIT |
Strona internetowa |
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.