I wasn't aware that libxslt (and also libexslt apparently) is public on iOS; that's useful to know. (I've used XSLT a fair bit over the years but always on the server side.)
You really need to determine whether or not you need XSLT 2 functionality. I suspect that you don't, because a bit of googling finds StackOverflow answers saying that .NET doesn't support XSLT 2. If you actually do... I don't really know what to suggest, except fixing the XSLT to not need the version 2 features.
Otherwise, everything boils down to libxslt in the end. So your choice is between
Swift -> Javascript -> C -> libxslt -> C -> Javascript -> Swift
Swift -> C -> libxslt -> C -> Swift
Some of those steps will involve serialising / deserialising XML text to/from XML object representations.
Personally, I'd choose the second option. Swift/C interop is pretty good. If you've not done it before - now's your chance to learn! Using a WKWebView is a horrible hack IMO. The usual reason for using WKWebView is that it has JIT Javascript, which JavascriptCore doesn't have, giving a worthwhile performance boost (maybe 10X). But that's not an issue here, as the JIT would just call the native C libxslt to do the work, and you can call that directly.
Topic:
App & System Services
SubTopic:
General