2017-09-20 6 views
0
Input  
     <p> 
     &lt;mml:mrow&gt; 
     &lt;mml:mi&gt;a&lt;/mml:mi&gt; 
     &lt;mmml:mo&gt; &lt; &lt;/mmml:mo&gt; 
     &lt;mmml:mo&gt; &gt; &lt;/mmml:mo&gt; 
     &lt;/mml:mrow&gt; 
    </p> 
Output 
     <p> 
     <mml:mrow> 
     <mml:mi>a</mml:mi> 
     <mmml:mo> &lt; </mmml:mo> 
     <mmml:mo> &gt; </mmml:mo> 
     </mml:mrow> 
    </p> 

このシナリオを理解していただければと思います。上記の変換を実行するにはxsltコードが必要です。変更方法>と< xslの変換を使用してですか?

+1

あなたは今まで何をしましたか? – timiTao

+0

'<」ではなく、「 <」ではありません。 –

+0

私はを試しました。あなたが述べたのと同様の結果が得られましたが、タグの間にある場合は<と>を保存する必要があります – abp10896

答えて

1

あなたは、HTMLパーサとそのコンテンツを解析しようとすることができます:

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:d="data:,dpc" exclude-result-prefixes="d"> 

    <xsl:import href="https://raw.githubusercontent.com/davidcarlisle/web-xslt/master/htmlparse/htmlparse.xsl"/> 

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

    <xsl:template match="p"> 
     <xsl:copy> 
      <xsl:copy-of select="d:htmlparse(., '', false())"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:transform> 

http://xsltransform.net/6pS1zDA/1はそれを行い、その結果を

<p> 
     <mrow> 
     <mi>a</mi> 
     <mo> &lt; </mo> 
     <mo> &gt; </mo> 
     </mrow> 
    </p> 

に実装されているHTMLパーサとして、XSLT 2.0または3.0のプロセッサが必要ですXSLTはXSLT 2.0を使用します。

+0

コードの作業を説明してください – abp10896

+0

スタイルシートはスタイルシートをインポートします。https://github.com/davidcarlisle/web-xslt/blob/master/htmlparse/htmlparse.xslこれはXSLT 2.0のXML/HTMLパーサー実装を修正するエラーですそのパーサーを使用して、 'p'要素の内容をノードのツリーにパースして出力します。 'p'の中のあなたの入力がXML構文の誤った組み合わせであるように思えるので、私はそれをXMLとして解析する方法はないと思います。 'parse-xml'を使用しています。そのため、インポートされたパーサが入力を処理できるか、何らかの形でそれを行うことができるかどうかを試しました。 –

+0

出力が私が望むのと同じではありません。親切に私の出力要件を参照してください。 – abp10896

関連する問題