For each functoid I’ve shown:
Functoids covered in this category:
ASCII to Character | Octal |
Character to ASCII | Common Code |
Hexadecimal |
Download the complete series as a single Microsoft
Word document (1.2MB) or Adobe
PDF document (620kb).
Conversion Functoids |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: No |
|
Emitted Code: public string ConvertChr(string val) { string retval = “”; double d = 0; if (IsNumeric(val, ref d)) { int v = (int)d; if (v >= 1 && v <= 127) { char c = (char)v; retval = c.ToString(System.Globalization.CultureInfo.InvariantCulture); } } return retval; } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: (none) Note: There are some inelegant hacks you can use (e.g. listing all the ASCII chars in a variable and selecting by index, or using the translate() function with a list of possible values) but there is no built-in support for this conversion. |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: No |
|
Emitted Code: public string ConvertAsc(string val) { if (val == null || val == “”) { return “”; } else { char c = val[0]; int x = c; return x.ToString(System.Globalization.CultureInfo.InvariantCulture); } } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: (none) Note: There are some inelegant hacks you can use (e.g. listing all the ASCII chars in a variable and selecting by index, or using the translate() function with a list of possible values) but there is no built-in support for this conversion. |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: No |
|
Emitted Code: public string ConvertHex(string val) { string retval = “”; double d = 0; if (IsNumeric(val, ref d)) { int v = (int)d; retval = Convert.ToString(v, 16).ToUpper(System.Globalization.CultureInfo.InvariantCulture); } return retval; } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: (none) |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: No |
|
Emitted Code: public string ConvertOct(string val) { string retval = “”; double d = 0; if (IsNumeric(val, ref d)) { int v = (int)d; retval = Convert.ToString(v, 8); } return retval; } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: (none) Note: There are some inelegant templates you can use to perform this conversion, but they are all quite long and involve string manipulation. |
||
Common Code (this is common code used by all the conversion functoids) |
||
public bool IsNumeric(string val) { if (val == null) { return false; } double d = 0; return Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d); } public bool IsNumeric(string val, ref double d) { if (val == null) { return false; } return Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d); } |