Это преобразование (XSLT 2.0):
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="info">
<xsl:variable name="vParas" select="tokenize(.,'
')[normalize-space()]"/>
<xsl:for-each select="$vParas">
<xsl:variable name="vHead" select=
"tokenize(., '[\s.?!,;:\-]+')[.][1]"/>
<b>
<xsl:sequence select="$vHead"/>
</b>
<xsl:sequence select="substring-after(., $vHead)"/>
<xsl:sequence select="'

'"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
при применении к предоставленному входу (преобразовано в хорошо сформированный XML-документ):
<t>
<name>ABC</name>
<dob>09-Jan-1973</dob> .. ..
<info>My name is ABC.
I am working with XYZ Ltd.
I have an experience of 5 years.
I have been working on Java platform since 5 years. </info>
</t>
дает требуемый, правильный результат :
<b>My</b> name is ABC.
<b>I</b> am working with XYZ Ltd.
<b>I</b> have an experience of 5 years.
<b>I</b> have been working on Java platform since 5 years.
И это отображается в браузере, как и ожидалось:
My зовут ABC.
Я работаю с XYZ Ltd.
Я опыт работы 5 лет.
I работает на платформе Java уже 5 лет.
Возможно также решение XSLT 1.0, немного более сложное.
Пояснение : Использование стандартной функции XPath 2.0 tokenize()
и стандартных функций XPath normalize-space()
и substring-after()
.