Guest User

Untitled

a guest
Apr 26th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. '/<span lang="hu" class="multilang">Hungarian Level 1</span><span lang="en" class="multilang">English Level ONE</span>/<span lang="hu" class="multilang">Hungarian Level 2</span><span lang="en" class="multilang">English Level TWO</span>/Last level'
  2.  
  3. SET @xml = '/<span lang="hu" class="multilang">Hungarian Level 1</span><span lang="en" class="multilang">English Level ONE</span>/<span lang="hu" class="multilang">Hungarian Level 2</span><span lang="en" class="multilang">English Level TWO</span>/Last level';
  4. SET @result1 = ExtractValue(@xml, '//span[1]');
  5. SET @result2 = ExtractValue(@xml, '/span[2]');
  6.  
  7. SELECT @result1;
  8. SELECT @result2;
  9.  
  10. CREATE DEFINER=`root`@`%` FUNCTION `decode_path`(
  11. `path_input` MEDIUMTEXT
  12. ,
  13. `lang` VARCHAR(50)
  14. )
  15. RETURNS mediumtext CHARSET utf8
  16. LANGUAGE SQL
  17. NOT DETERMINISTIC
  18. CONTAINS SQL
  19. SQL SECURITY DEFINER
  20. COMMENT ''
  21. BEGIN
  22. DECLARE cnt INT UNSIGNED DEFAULT 2;
  23. DECLARE cat_id INT UNSIGNED;
  24. DECLARE cat_name VARCHAR(200) DEFAULT '';
  25. DECLARE decoded_path MEDIUMTEXT;
  26. SET decoded_path = '';
  27.  
  28. WHILE cnt < LENGTH(path_input) - LENGTH(REPLACE(path_input, '/', '')) + 2 DO
  29. SET cat_id = SUBSTRING_INDEX(SUBSTRING_INDEX(path_input,'/',cnt), '/', -1);
  30. SELECT `name` INTO cat_name FROM mdl_course_categories as c WHERE id = cat_id;
  31. SET decoded_path := CONCAT(decoded_path, '/', cat_name);
  32. SET cnt := cnt + 1;
  33. END WHILE;
  34.  
  35. SET @path := decoded_path;
  36. IF(lang REGEXP 'hu%' ) THEN
  37. -- SET decoded_path := REPLACE(decoded_path,'<span lang="en" class="multilang">','');
  38. SET @result := ExtractValue(@path, '/span[1]');
  39. ELSEIF (lang REGEXP 'en%' ) THEN
  40. -- SET decoded_path := REPLACE(decoded_path,'<span lang="hu" class="multilang">','');
  41. SET @result := ExtractValue(@path, '/span[2]');
  42. END IF;
  43.  
  44. RETURN @result;
  45. END
Add Comment
Please, Sign In to add comment