This is the idea of the viera.js "library"
[{"id":"41273357.16c744","type":"inject","z":"7be082eb.bb1594","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":264,"wires":[["7afa94be.f2855c"]]},{"id":"7afa94be.f2855c","type":"function","z":"7be082eb.bb1594","name":"set xml","func":"xml = '<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body><u:X_SendKey xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\"><X_KeyEvent>NRC_POWER-ONOFF</X_KeyEvent></u:X_SendKey></s:Body></s:Envelope>'\nheaders = {\n'Content-Type': 'text/xml; charset=\"utf-8\"',\n'SOAPACTION': '\"urn:X_SendKey#NRC_POWER-ONOFF'\n}\n\nreturn {headers:headers,payload:xml}","outputs":1,"noerr":0,"x":324,"y":264,"wires":[["e5c86241.c123e8","416522f5.a46944"]]},{"id":"61a769eb.a47a88","type":"http request","z":"7be082eb.bb1594","name":"","method":"POST","ret":"txt","paytoqs":false,"url":"http://tv-ipaddress:55000/nrc/control_0","tls":"","proxy":"","authType":"basic","x":642,"y":374,"wires":[["9362629d.fb97f8"]]},{"id":"416522f5.a46944","type":"debug","z":"7be082eb.bb1594","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":622,"y":264,"wires":[]},{"id":"e5c86241.c123e8","type":"xml","z":"7be082eb.bb1594","name":"","property":"payload","attr":"","chr":"","x":468,"y":308,"wires":[["416522f5.a46944","61a769eb.a47a88"]]},{"id":"9362629d.fb97f8","type":"debug","z":"7be082eb.bb1594","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":794,"y":374,"wires":[]}]
Change the http request node:
http://tv-ipaddress:55000/nrc/control_0 replace tv-ipaddress with your tv's ip adress.
As I cannot test it, can't guarantee that it works. But look at all the outputs in the debug window and see what is being send. The viera.js library generates "dynamic" xml output based on the commands. In this example I used the POWER command. All the commands could be dynamic in node-red as well by using a switch node or something.