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 ```