2012-02-28 2 views
0

У меня есть XML, как этотудалить кавычки («») от значения, извлеченного из XML с помощью XSLT

<P style="TEXT-ALIGN: center; MARGIN: 0pt"> 
     <SPAN style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 36pt FONT-WEIGHT: bold">Form</SPAN> 
      <SPAN style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 25pt; FONT-WEIGHT: bold">Form</SPAN> 
      <SPAN style="FONT-FAMILY: 'COMIC SANS MS'; FONT-SIZE: 6.7pt; FONT-WEIGHT: bold">Form</SPAN> 
      <SPAN style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE:10pt; FONT-WEIGHT: bold;TEXT-DECORATION:underline">10-Q</SPAN> 
      <SPAN style="FONT-FAMILY: 'CURSIVE'; FONT-SIZE:14pt">Hisasdf @ adsfkej % adsfkj-Q</SPAN> 
      <SPAN style="FONT-FAMILY: 'Edwardian Script ITC'; FONT-SIZE:18pt">Singhaniadf kurmad-Q</SPAN> 
      <SPAN style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 7pt">anurag arya fateh ali khan-Q</SPAN> 
      <SPAN style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE:12pt;TEXT-DECORATION:underline">rakesh kumar sinfhania</SPAN> 
     </P> 
<xsl:variable name="Fface"> 
    <xsl:value-of select="(normalize-space(substring-before(substring-after(@style,'FONT-FAMILY:'),';')))"/> 
</xsl:variable> 

и я использую этот код, чтобы определить семейство шрифтов и его работает отлично и дает мне значение с помощью этого

<xsl:value-of select="$Fface"/> 

но значение у меня есть 'TIMES NEW ROMAN', имеющие котировки, но я хочу его без этих цитат так, что делать, есть ли процедура, чтобы сделать это

ответ

1

Если вы были уверены, что апостроф всегда будет присутствовать, вы могли бы просто использовать функцию подстроки, чтобы сделать это

<xsl:value-of select="substring($Fface, 2, string-length($Fface) - 2)" /> 
+0

Wow это работает на самом деле им пытаются перевести в (API) для выполнения этого, но я обнаружил, что он не может преобразовать вывод. , но ваш ответ за меня благодарит ... :) – Librak

1

Если вы хотите использовать функцию перевода, чтобы удалить апостроф из значения, вы могли бы сделать это так:

<xsl:value-of select='translate($Fface, "&apos;", "")' /> 

Это удалит ВСЕ апострофы из значения, хотя и не только в начале в конце.

Обратите внимание, как использование aposotrophes (') и кавычки (") были отменены в вышеуказанном заявлении на то, что обычно делается.

Если ты хочешь, чтобы поместить все это в одно большое заявление, вы могли бы сделать это так, хотя это не было бы так легко читать.

<xsl:value-of select='translate(normalize-space(substring-before(substring-after(@style,"FONT-FAMILY:"),";")), "&apos;", "")' /> 
+0

его создание проблемы, когда я использую это как целое \t \t ' ' что делать, если я хочу написать это в одной строке – Librak

+0

@Librak Я изменил свой ответ, чтобы показать, как это делается. –

Смежные вопросы