誰かが私が厄介な問題を抱えて私を助けてくれるかどうか疑問に思います。おそらくここでは不可能と頼んでいますが、何か提案を聞くことに興味があります。XSLT:XMLノードのコードスニペットからHTMLファイルを構築する
ノードの1つにページのHTMLが含まれているXMLファイルがあります。私はそのノードの中のデータとそれからHTMLファイルを作る方法を取っていきたいと思います。下のサンプルXMLから、cell[2]
ノードを//dvm/rows/row
から変換して別のファイルに配置して、実際にそのHTMLマークアップが何を表示し、コードではなく適切なWebページとして表示できるようにしたいと考えています。
このようにXSLを挿入すると動作しますか?
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:template match="/">
<xsl:value-of select="//dvm/rows/row/cell[2]" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
XMLは次のとおりです。
<dvm>
<description>This is a DVM file</description>
<columns>
<column name="lang"/>
<column name="text"/>
<column name="code" qualifier="true" order="1"/>
<column name="type" qualifier="true" order="2"/>
<column name="subj"/>
<column name="urem"/>
<column name="vreq"/>
</columns>
<rows>
<row>
<cell>English(UK)</cell>
<cell><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My HTML File</title>
</head>
<body>
<div class="text">
<p>This is a line of text</p>
<p>This is a line of text</p>
<p>This is a line of text</p>
</div>
</body>
</html>]]>
</cell>
<cell>Code 1</cell>
<cell>Text</cell>
<cell>HTML Block 1</cell>
<cell/>
<cell/>
</row>
</rows>
</dvm>
ありがとうございます!私はあなたの提案を私のXSLテンプレートに入れようとしたときに私の質問にわずかな修正を加えましたが、コード・ブロックをテキスト・フォームで表示しました(私は「ビュー・ソース」を行っていました)。私はそれを正しい方法と呼んでいますか? – JaXL
ソースを見たときにHTMLコードが表示されましたか?よくわかりません。結局のところ、これは期待される結果です。いいえ? – Tomalak
申し訳ありません - 私は最後のコメントを少しひどく言いました。私は、ブラウザでXSL変換を試してみると、コードブロックをテキスト形式で表示していました(実際には表示ソースを実行していないかのように言いたいのです)。私が意図していたのは、私が選んだHTMLのレンダリングされた結果をどのように見るかでした。e。そのコードセグメントのWebページそれがより理にかなったことを願って! – JaXL