Analiza XML
Krok Analiza XML odczytuje XML przechowywany w jednej kolumnie tabeli źródłowej i zamienia go na wiersze. Dla każdego wiersza wejściowego znajduje wszystkie wystąpienia wskazanego elementu i generuje jeden wiersz wyjściowy na każde dopasowanie, rzutując atrybuty tego elementu i wartości jego znaczników podrzędnych na kolumny.
Jest to odpowiednik narzędzia XML Parse z Alteryx. Analiza jest wykonywana w silniku przepływu pracy (bazy danych nie potrafią analizować XML w SQL), więc krok jest natywny dla PlaidCloud i nie ma zapasowej wersji w SQL.
Źródło i opcje
Dział zatytułowany „Źródło i opcje”- Tabela źródłowa — tabela, której wiersze zawierają XML do przeanalizowania.
- Tabela wyjściowa — tabela, do której zapisywane są przeanalizowane wiersze.
- Pole XML — kolumna zawierająca tekst XML.
- Element — element, którego każde wystąpienie staje się wierszem wyjściowym. Pozostaw puste, aby przeanalizować elementy najwyższego poziomu.
- Odczytaj element jako wyrażenie XPath 1.0 — traktuje Element jako wyrażenie XPath 1.0
zamiast nazwy, dzięki czemu może używać predykatów, testów atrybutów,
symboli wieloznacznych i funkcji takich jak
count(),name()icontains(). Ścieżka względna zaczyna się od elementu głównego dokumentu. Każdy element wybrany przez wyrażenie staje się jednym wierszem wyjściowym. Element jest analizowany jak zwykle. Każdy inny element, taki jak atrybut lub wynikcount(), zastępuje w swoim wierszu wartość Pole XML własną wartością; przy włączonych wartościach elementów podrzędnych wybrany atrybut otrzymuje zamiast tego kolumnę o własnej nazwie. XML jest odczytywany z wyłączonymi encjami i dostępem do sieci, a dokument, który nie jest poprawnie sformułowany, powoduje niepowodzenie kroku, chyba że pominiesz takie wiersze. - Wyodrębnij wartości elementów podrzędnych jako kolumny — dla każdego dopasowanego elementu dodaje kolumnę na znacznik podrzędny, zawierającą wartość tego elementu podrzędnego.
- Wyodrębnij zewnętrzny XML każdego elementu podrzędnego — dodatkowo dodaje kolumnę
<tag>_OuterXMLzawierającą serializowany XML każdego elementu podrzędnego (przydatne, gdy sam element podrzędny zawiera zagnieżdżony XML, który analizujesz w późniejszym kroku). - Pomiń wiersze, których XML nie można przeanalizować — odrzuca wiersz wejściowy, którego wartość nie jest poprawnie sformułowanym XML, zamiast kończyć krok niepowodzeniem.
Konwersja XML na JSON
Dział zatytułowany „Konwersja XML na JSON”Dane wyjściowe określają, czym staje się każdy dokument:
- Kolumny (domyślnie) — przeanalizowane wartości w kolumnach, zgodnie z ustawieniami poniżej.
- Element jako JSON — każdy dokument w Pole XML jest zastępowany swoim tekstem JSON, jeden wiersz wyjściowy na wiersz wejściowy. Atrybuty stają się polami
@, własny tekst elementu staje się#text, a powtarzające się elementy podrzędne stają się tablicami. Opcje Element, wartości elementów podrzędnych, zewnętrznego XML i XPath są wyłączone; Pomiń wiersze, których XML nie można przeanalizować nadal obowiązuje.
Aby nadać JSON wartościom typy, ustaw Wykrywaj typy wartości na podstawie pierwszych N dokumentów na liczbę dokumentów. JSON zawiera wtedy elementy podrzędne korzenia, każdy z typem ustalonym na podstawie tylu pierwszych dokumentów jako liczba całkowita, liczba dziesiętna, wartość logiczna, data, znacznik czasu lub tekst, rozszerzonym tak, aby pasował do każdego z tych dokumentów, tak jak wnioskuje to schema_of_xml w Spark. Pole, którego te dokumenty nie mają, jest pomijane, a wartość, która nie daje się odczytać jako jej typ, ma wartość null. Przy 0 każda wartość pozostaje tekstem.
Kolumny XPath
Dział zatytułowany „Kolumny XPath”Sekcja Zapytania XPath działa jak węzeł XPath w KNIME. Dodaj wiersze do Zapytania (xpaths): zamiast wiersza na element każdy wiersz wejściowy jest kopiowany i otrzymuje po jednej kolumnie na zapytanie XPath 1.0 do XML w Pole XML. Kolumny przechodzące zachowują swoje typy. Każde zapytanie ma Kolumna (target), wyrażenie XPath 1.0 (path), Wynik (kind) i Kilka wyników (multi):
- Wynik — typ wartości:
String,Integer,Double,Number,Boolean,NodelubNodeSet. - Kilka wyników — co zapisuje zapytanie wybierające kilka elementów:
SingleCell(pierwszy),CollectionCell(wartość listowa),MultipleColumns(po kolumnie na element),UngroupToRows(po wierszu na element) lubJoinedText(tekst elementów połączony za pomocą Separator elementów (separator), domyślnie spacją; Części elementu (XPath) (parts) pobiera tekst każdego elementu z pierwszego dopasowania tych ścieżek względnych, połączony za pomocą Separator części (part_separator)). - Puste oznacza brak (
empty_missing) — zapytanie, które nic nie wybiera, daje brakującą komórkę.
Te pola w sekcji mają zastosowanie z zapytaniami:
- Przestrzenie nazw (
xpath_namespaces) — pary{prefix: namespace URI}używane przez zapytania. Prefiks przestrzeni nazw korzenia (xpath_root_prefix) wiąże domyślną przestrzeń nazw korzenia dokumentu z tym prefiksem. - Pomiń pole XML w wyniku (
xpath_remove_source) — pomija Pole XML w wyniku. - Zapytanie logiczne o wyniku fałsz daje brakującą komórkę (
xpath_missing_on_false) — zapytanieBooleano wyniku fałsz daje brakującą komórkę. Zapytanie o kolekcję, które nic nie wybiera, daje brakującą komórkę (xpath_empty_set_missing) — zapytanieCollectionCell, które nic nie wybiera, daje brakującą komórkę. - Odczytaj pole XML jako stronę HTML (
xpath_html) — odczytuje pole jako stronę HTML, naprawioną do drzewa XML z korzeniemhtml. - Kolumna numeru elementu dla „po jednym wierszu” (
xpath_ungroup_index) — przy zapytaniuUngroupToRowszapisuje w tej kolumnie numer elementu każdego wiersza, liczony od 1. „Po jednym wierszu” bez wyniku (xpath_ungroup_empty) określa, co daje dokument, w którym zapytanie nic nie wybiera: jeden wiersz z brakującą wartością (row, domyślnie), brak wiersza (drop) lub niepowodzenie kroku (fail). - Zapisz tylko tabelę tworzoną przez elementy pierwszego zapytania (
xpath_table) — zapisuje tylko tabelę tworzoną przez elementy pierwszego zapytania, jeden wiersz na element, na przykład każdytrtabeli HTML, z jego elementami podrzędnymi jako komórkami tekstowymi. Pierwszy wiersz komórek nagłówka nadaje nazwy kolumnom; w przeciwnym razie noszą one nazwyColumn <n>.
Kolumny
Dział zatytułowany „Kolumny”Karta Kolumny to standardowy mapper danych dla kolumn przechodzących — kolumn źródłowych, które chcesz przenieść do każdego wiersza wyjściowego.
Kolumny wykryte podczas analizy — atrybuty elementu i jego znaczniki podrzędne — są
dodawane do wyniku automatycznie; nie wymieniasz ich tutaj. Gdy wyodrębniona
nazwa koliduje z kolumną przechodzącą (lub wcześniejszą wyodrębnioną), jest
rozróżniana przez dopisanie numeru (id → id2 → id3), tak jak w Alteryx.
Łańcuch kroków Analiza XML działa tak jak w Alteryx: każda przychodząca kolumna jest przekazywana dalej, więc późniejszy krok może ponownie przeanalizować kolumnę utworzoną przez wcześniejszy krok i odwoływać się do kolumn wyodrębnionych przez wcześniejszy krok.