Use a character-map to control output serialization. You'll find the relevant part of the XSL specification here.
Note that there are other issues with your code. A stylesheet must contain a template that can be triggered, for example xsl:template match="/"
. Otherwise, nothing is serialized anyway.
Also, I do not see how this relates to an input XML document, since the content comes solely from your XSLT stylesheet.
Stylesheet
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output use-character-maps="my-map" indent="yes"/>
<xsl:character-map name="my-map">
<xsl:output-character character="í" string="&#x000ED;"/>
</xsl:character-map>
<xsl:template match="/">
<root>
<p pstyle="para">This is sample character í</p>
</root>
</xsl:template>
</xsl:stylesheet>
Output
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p pstyle="para">This is sample character í</p>
</root>