parseText: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<dd class="note">([^}]*)<code>([^<]*)<\/code>" to "<dd class="note">$1<sqf>$2</sqf>")
m (Some wiki formatting)
Line 32: Line 32:
|r1= [[Structured Text]]
|r1= [[Structured Text]]


|x1= <code>private _Stxt = parseText "First line<img image='data\isniper.paa'/><nowiki><br/></nowiki>Second line";</code>
|x1= <sqf>private _Stxt = parseText "First line<img image='data\isniper.paa'/><br/>Second line";</sqf>


|x2= <code>hintSilent parseText format["<t size='1.25' font='Zeppelin33' color='#ff0000'>%1 lives remaining.</t>", 12];</code>
|x2= <sqf>hintSilent parseText format["<t size='1.25' font='Zeppelin33' color='#ff0000'>%1 lives remaining.</t>", 12];</sqf>


|x3= <code>private _clickableLink = parseText "<nowiki><a href='http://arma3.com'>A3</a></nowiki>";</code>
|x3= <sqf>private _clickableLink = parseText "<a href='http://arma3.com'>A3</a>";</sqf>


|seealso= [[Structured Text]] [[composeText]] [[text]] [[localize]] [[ctrlSetStructuredText]]
|seealso= [[Structured Text]] [[composeText]] [[text]] [[localize]] [[ctrlSetStructuredText]]
Line 54: Line 54:
<dd class="note">
<dd class="note">
If you are parsing user-defined strings like player names, you may want to convert special characters to their {{Wikipedia|Character_encodings_in_HTML#XML_character_references|XML entities}} as a precaution beforehand, otherwise the result might be corrupted.
If you are parsing user-defined strings like player names, you may want to convert special characters to their {{Wikipedia|Character_encodings_in_HTML#XML_character_references|XML entities}} as a precaution beforehand, otherwise the result might be corrupted.
<code>private _escapeXML =
<sqf>private _escapeXML =
{
{
_this
_this
[[regexReplace]] ["&amp;", "&amp;amp;"]
regexReplace ["&amp;", "&amp;amp;"]
regexReplace ["<", "&amp;lt;"]
regexReplace ["<", "&amp;lt;"]
regexReplace [">", "&amp;gt;"]
regexReplace [">", "&amp;gt;"]
Line 66: Line 66:
private _name = '<A&amp;M> Paul "Bear" Bryant';
private _name = '<A&amp;M> Paul "Bear" Bryant';
private _escapedName = _name call _escapeXML;
private _escapedName = _name call _escapeXML;
private _redName = parseText format ["<t color='#ff0000'>%1</t>", _escapedName];</code>
private _redName = parseText format ["<t color='#ff0000'>%1</t>", _escapedName];</sqf>
</dd>
</dd>


</dl>
</dl>

Revision as of 15:12, 13 May 2022

Hover & click on the images for description

Description

Description:
Creates a structured text by parsing the given XML description. Do not use parseText when displaying a localized text from Stringtable.xml.
A detailed explanation of all formatting possibilities can be found at Structured Text.
Groups:
StringsStructured Text

Syntax

Syntax:
parseText text
Parameters:
text: String
Return Value:
Structured Text

Examples

Example 1:
private _Stxt = parseText "First line<img image='data\isniper.paa'/><br/>Second line";
Example 2:
hintSilent parseText format["<t size='1.25' font='Zeppelin33' color='#ff0000'>%1 lives remaining.</t>", 12];
Example 3:
private _clickableLink = parseText "<a href='http://arma3.com'>A3</a>";

Additional Information

See also:
Structured Text composeText text localize ctrlSetStructuredText

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note


Posted on 1 September 2016
Dr_Eyeball
To convert a structured text back to a string type, just use:
_str = str parseText _structuredText;
Posted on September 1, 2017 - 13:23 (UTC)
AgentRev
If you are parsing user-defined strings like player names, you may want to convert special characters to their XML entities as a precaution beforehand, otherwise the result might be corrupted.
private _escapeXML = { _this regexReplace ["&amp;", "&amp;amp;"] regexReplace ["<", "&amp;lt;"] regexReplace [">", "&amp;gt;"] regexReplace ['"', "&amp;quot;"] regexReplace ["'", "&amp;apos;"] }; private _name = '<A&amp;M> Paul "Bear" Bryant'; private _escapedName = _name call _escapeXML; private _redName = parseText format ["<t color='#ff0000'>%1</t>", _escapedName];