Przejdź do głównej zawartości

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.

Dokument XML<order id=“1”><name>Ann</name><item>a</item></order>analizapłaskie kolumnyorder_idnameitem1Anna
Table XML Parse zamienia dokument XML na zwykłe wiersze i kolumny — elementy i atrybuty stają się polami, z których kolejne kroki mogą korzystać bezpośrednio.
  • 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() i contains(). Ś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 wynik count(), 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>_OuterXML zawierają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.

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.

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, Node lub NodeSet.
  • 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) lub JoinedText (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) — zapytanie Boolean o 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) — zapytanie CollectionCell, 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 korzeniem html.
  • Kolumna numeru elementu dla „po jednym wierszu” (xpath_ungroup_index) — przy zapytaniu UngroupToRows zapisuje 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żdy tr tabeli HTML, z jego elementami podrzędnymi jako komórkami tekstowymi. Pierwszy wiersz komórek nagłówka nadaje nazwy kolumnom; w przeciwnym razie noszą one nazwy Column <n>.

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.