Is there a way to get the isolation level from sp_whoisactive out of the xml into the plain result?
Using the built-in functionality of sp_whoisactive to return the schema of the result set, you can store that information in a temp table and then use CROSS APPLY to extract out one or more xml nodes from the additional information

--Drop temp table 
IF OBJECT_ID('tempdb.dbo.sp_whois_active') IS NOT NULL  
    DROP TABLE tempdb.dbo.sp_whois_active 

--Use 'return_schema' to create a temp table to hold the results of sp_whoisactive
DECLARE @s VARCHAR(MAX)

EXEC sp_WhoIsActive @output_column_list = '[%]'
    ,@return_schema = 1
    ,@schema = @s OUTPUT
    ,@get_additional_info = 1

SET @s = REPLACE(@s, '&lt;table_name&gt;', 'tempdb.dbo.sp_whois_active')

EXEC (@s)

--Populate the temp table by executing sp_whoisactive
EXEC sp_WhoIsActive @output_column_list = '[%]'
    ,@destination_table = 'tempdb.dbo.sp_whois_active'
    ,@get_additional_info = 1

--Select all of the columns from the temp table and
--use CROSS APPLY to extract one or more xml nodes
SELECT who.*
    ,N.C.value('transaction_isolation_level[1]', 'varchar(100)') IsolationLevel
FROM tempdb.dbo.sp_whois_active who
CROSS APPLY additional_info.nodes('//additional_info') N(C)