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.