Opis formuły:
Formuła służy do pobierania danych z tekstu XML za pomocą wyrażenia xPath. Można dzięki niej odczytać wartości elementów znajdujących się w strukturze XML. Formuła zwraca tablicę wszystkich znalezionych wartości.
Formuła służy do pobierania danych z tekstu XML za pomocą wyrażenia xPath. Można dzięki niej odczytać wartości elementów znajdujących się w strukturze XML. Formuła zwraca tablicę wszystkich znalezionych wartości.
Składnia:
FILTERXML(XML, xPath, ignoreNamespaces)
FILTERXML(XML, xPath, ignoreNamespaces)
Parametry:
XML(typ: tekst)
IgnoreNamespaces(type: wartość logiczna)(opcjonalny parametr)
XML(typ: tekst)
Tekst zawierający XML, z którego ma zostać odczytana wartość.
xPath(typ:tekst)
Wyrażenie xPath wskazujące które elementy lub wartości mają
zostać zwrócone.
Określa, czy oznaczenia namespace mają być ignorowane. Wartość
true - pomija namespace i pozwala używać prostszych ścieżek
xPath. Wartość false - wymaga użycia pełnych nazw elementów
zgodnych z XML. Domyślnie ustawiona jest wartość true.
Zwracany typ:
Tablica wartości
Jak działa formuła:
Pierwszy parametr to tekst XML.
Drugi parametr to wyrażenie xPath, które wskazuje jakie dane mają zostac pobrane.
Znak / służy do przechodzenia do kolejnego elementu w strukturze XML.
Przykład: /root/item oznacza element item, który znajduje się wewnątrz root.
Znak // wyszukuje element w całym XML, niezależnie od jego położenia.
Przykład: //item znajdzie wszystkie elementy item.
Znak @ służy do pobierania wartości atrybutu elementu.
Przykład: //user/@id zwróci wartość atrybutu id.
Można również filtrować wyniki.
Przykład: //item[price="20"] znajdzie tylko te elementy item, które mają price równe 20.
Trzeci parametr określa, czy oznaczenia namespace mają być ignorowane. Namespace w XML to dodatkowe oznaczenie przed nazwą elementu, np. <a:Item /> albo <ns:Item />. Jest ono używane, gdy XML pochodzi z różnych systemów lub zawiera elementy o takich samych nazwach. Parametr ignoreNamespaces pozwala zdecydować, czy brać pod uwagę te oznaczenia.
Pierwszy parametr to tekst XML.
Drugi parametr to wyrażenie xPath, które wskazuje jakie dane mają zostac pobrane.
Znak / służy do przechodzenia do kolejnego elementu w strukturze XML.
Przykład: /root/item oznacza element item, który znajduje się wewnątrz root.
Znak // wyszukuje element w całym XML, niezależnie od jego położenia.
Przykład: //item znajdzie wszystkie elementy item.
Znak @ służy do pobierania wartości atrybutu elementu.
Przykład: //user/@id zwróci wartość atrybutu id.
Można również filtrować wyniki.
Przykład: //item[price="20"] znajdzie tylko te elementy item, które mają price równe 20.
Trzeci parametr określa, czy oznaczenia namespace mają być ignorowane. Namespace w XML to dodatkowe oznaczenie przed nazwą elementu, np. <a:Item /> albo <ns:Item />. Jest ono używane, gdy XML pochodzi z różnych systemów lub zawiera elementy o takich samych nazwach. Parametr ignoreNamespaces pozwala zdecydować, czy brać pod uwagę te oznaczenia.
Przykłady:
=join(', ',filterxml('<root><item>A</item><item>B</item></root>','//item',TRUE))
Formuła zwróci: A, B
=first(filterxml('<root> <user id="55">Adam</user>
</root>','//user/@id',TRUE))
Formuła zwróci: 55
=CONCAT(filterxml('<root xmlns:a="x"> <a:Item> <a:Value>100</a:Value>
</a:Item> </root>','//a:Item/a:Value',FALSE))
Formuła zwróci: 100
=CONCAT(filterxml('<root> <item><price>10</price><name>A</name></item>
<item><price>20</price><name>B</name></item>
</root>','//item[price="20"]/name',TRUE))
Formuła zwróci: B
=CONCAT(FILTERXML(A2,B2,C2))
0 Komentarze