github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/md/xml.en.md (about)

     1  ### `xml()` {#fn-xml}
     2  
     3  Function prototype: `fn xml(input: str, xpath_expr: str, key_name)`
     4  
     5  Function description: Extract fields from XML through xpath expressions.
     6  
     7  Function parameters:
     8  
     9  - input: XML to extract
    10  - xpath_expr: xpath expression
    11  - key_name: The extracted data is written to a new key
    12  
    13  Example one:
    14  
    15  ```python
    16  # data to be processed
    17          <entry>
    18           <fieldx>valuex</fieldx>
    19           <fieldy>...</fieldy>
    20           <fieldz>...</fieldz>
    21           <field array>
    22               <fielda>element_a_1</fielda>
    23               <fielda>element_a_2</fielda>
    24           </fieldarray>
    25       </entry>
    26  
    27  # process script
    28  xml(_, '/entry/fieldarray//fielda[1]/text()', field_a_1)
    29  
    30  # process result
    31  {
    32     "field_a_1": "element_a_1", # extracted element_a_1
    33     "message": "\t\t\u003centry\u003e\n \u003cfieldx\u003evaluex\u003c/fieldx\u003e\n \u003cfieldy\u003e...\u003c/fieldy\u003e\n \u003cfieldz\u003e...\ u003c/fieldz\u003e\n \u003cfieldarray\u003e\n \u003cfielda\u003eelement_a_1\u003c/fielda\u003e\n \u003cfielda\u003eelement_a_2\u003c/fielda\u003e\n \u003c/fieldarray\n\c\u003 u003e",
    34     "status": "unknown",
    35     "time": 1655522989104916000
    36  }
    37  ```
    38  
    39  Example two:
    40  
    41  ```python
    42  # data to be processed
    43  <OrderEvent actionCode = "5">
    44    <OrderNumber>ORD12345</OrderNumber>
    45    <VendorNumber>V11111</VendorNumber>
    46  </OrderEvent>
    47  
    48  # process script
    49  xml(_, '/OrderEvent/@actionCode', action_code)
    50  xml(_, '/OrderEvent/OrderNumber/text()', OrderNumber)
    51  
    52  # process result
    53  {
    54     "OrderNumber": "ORD12345",
    55     "action_code": "5",
    56     "message": "\u003cOrderEvent actionCode = \"5\"\u003e\n \u003cOrderNumber\u003eORD12345\u003c/OrderNumber\u003e\n \u003cVendorNumber\u003eV11111\u003c/VendorNumber\n\u003e\u003e"
    57     "status": "unknown",
    58     "time": 1655523193632471000
    59  }
    60  ```