Как определить пробел в тексте - PullRequest
1 голос
/ 18 сентября 2010

Я хочу добавить несколько строк в текст сразу после начального пробела.Есть идеи, как определить ведущий космос?Спасибо.

Например, я хотел бы добавить «def» перед abc, но после начального пробела.

<AAA>
    <CCC> abc</CCC>
</AAA>

Вывод должен стать: "defabc"

Ответы [ 3 ]

2 голосов
/ 18 сентября 2010

Это преобразование :

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="text()[starts-with(.,' ')]">
   <xsl:value-of select=
   "concat(' ', 'def', substring(.,2))"/>
 </xsl:template>
</xsl:stylesheet>

при применении к предоставленному документу XML :

<AAA>
    <CCC> abc</CCC>
</AAA>

дает желаемый, правильный результат :

<AAA>
   <CCC> defabc</CCC>
</AAA>
1 голос
/ 18 сентября 2010

Исходя из вашего тега, что вы пытаетесь сделать это в xslt, я бы использовал XSLT запускается с функцией.

Если вы предоставите пример кода XSLT, было бы проще объяснить больше.

0 голосов
/ 20 сентября 2010

Помимо ответа Димитра о правильном использовании сопоставления с образцом, вам может помочь это выражение XPath:

concat(substring($AddString, 1 div starts-with($String,' ')), $String)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...