Jak parsować XML w Ruby

Jak parsować XML w Ruby
Dokumenty XML i HTML to powszechna technologia, która zasila nowoczesny Internet. Prawie każda strona internetowa w Internecie używa co najmniej jednego formatowania HTML. Ten szybki przewodnik omówi, jak parsować dokumenty XML i HTML w Ruby za pomocą popularnego pakietu Nokogiri.

Jakie są dokumenty XML i HTML?

Dokumenty HTML to każdy dokument zawierający język hipertekstowy, który jest podstawowym formatem używanym do opisania struktury dokumentów wyświetlanych w Internecie.

Podobnie dokumenty XML to dokumenty zawierające znaczniki XML. Zgodnie z oficjalną dokumentacją XML lub rozszerzalny język znaczników jest językiem znaczników, który określa reguły kodowania dokumentów zarówno dla czytelności ludzkiej, jak i maszynowej.

Dokumenty HTML i XML kończą się w .HTML i .odpowiednio xml.

Instalacja

Zanim będziemy mogli przetworzyć dowolne dokumenty XML lub HTML w Ruby, musimy zainstalować bibliotekę parserów XML/HTML. W tym przykładzie użyjemy biblioteki Nokogiri.

Aby go zainstalować, użyj polecenia menedżera pakietów GEM:

$ klejnot instaluj nokogiri
Pobieranie Nokogiri-1.12.0-x86_64-linux.klejnot
Pomyślnie zainstalowano Nokogiri-1.12.0-x86_64-linux
Dokumentacja parsowania dla Nokogiri-1.12.0-x86_64-linux
Instalowanie dokumentacji RI dla Nokogiri-1.12.0-x86_64-linux
Wykonano instalowanie dokumentacji dla Nokogiri po 1 sekundach
1 zainstalowany klejnot

Po zainstalowaniu możesz go przetestować, uruchamiając Ruby Interactive Shell z poleceniem IRB.
Następnie zaimportuj pakiet jako:

Wymagaj „nokogiri”
=> True

Ładowanie dokumentów HTML/XML

Aby załadować dokumenty HTML lub XML za pomocą biblioteki NOKOGIRI, używasz operatora rozdzielczości przestrzeni nazw Ruby i uzyskuje dostęp do ładowarki, albo HTML lub XML.

Na przykład: Aby załadować HTML, użyj:

Wymagaj „nokogiri”
html_data = nokogiri :: html (''






Dokument



<')
Umieszcza html_data.klasa

Przykładowy kod powinien załadować zawartość HTML i zapisać je na zdefiniowanej zmiennej. Aby sprawdzić klasę źródłową danych, używamy .Metoda klasy.

Kod powinien wyświetlać dane wyjściowe jako:

Nokogiri :: html4 :: dokument

Ładowanie z pliku

Możemy również załadować dane z pliku HTML/XML. Rozważ przykładowy plik z zawartością XML jako:

Aby załadować plik XML za pomocą NOKOGIRI, możesz użyć przykładowego kodu, jak pokazano:

Wymagaj „nokogiri”
Plik próbki_data =.otwarte („próbka.xml ')
parsed_info = nokogiri :: xml (próbka_data)
umieszcza parsed_info

Wyszukiwanie dokumentu XML

Aby wyszukać załadowany dokument XML lub HTML, możemy użyć metody XPath.

Na przykład: w powyższym pliku XML próbki, aby uzyskać wszystkie wartości, możemy zrobić:

Wymagaj „nokogiri”
Plik próbki_data =.otwarte („próbka.xml ')
parsed_info = nokogiri :: xml (próbka_data)
umieszcza parsed_info.xpath („// wartość”)

Przykładowy kod powyżej powinien zwrócić wartości ze słowem kluczowym wartości.

Zdobądź indywidualny przedmiot

Możemy również uzyskać wartość poszczególnych elementów. Na przykład: Aby uzyskać dokument, wpisz przykładowy plik XML powyżej:

Wymagaj „nokogiri”
Plik próbki_data =.otwarte („próbka.xml ')
parsed_info = nokogiri :: xml (próbka_data)
umieszcza parsed_info.xpath ("/*/@dokument_type")

Kod powinien zwrócić wartość z Document_Type.

Konwertuj XML na HTML

Możesz także przekonwertować przeanalizowany dokument XML na HTML za pomocą metody TO_HTML. Oto przykładowy kod:

Wymagaj „nokogiri”
Plik próbki_data =.otwarte („próbka.xml ')
parsed_info = nokogiri :: xml (próbka_data)
zero = parsed_info.to_html
stawia zero

Powinno to zwrócić dane XML do HTML w postaci ciągu.

Wniosek

Ten krótki samouczek pokazał, jak przeanalizować dokumenty XML za pomocą pakietu Nokogiri. Zapoznaj się z dokumentacją, aby odkryć jego pełne możliwości.