2009-07-02 28 views
1

XSLT 1.0を使用してXMLファイルを変換するためのXSLT 1.0ファイルがあります。それはIE 6.0、Firefox 3.0.11でうまく動作します。しかし、PHP 5.2.6 XSL XSLTProcessor(XSLT 1.0を提供する)とQt C++ QXmlQuery(XSLT 2.0のみを提供する)は空白の出力を与えます。XSLT 1.0からXSLT 2.0への変換

私は2つの方法を考えています:

  1. は、解析するために、Firefoxの一部を抽出2.0(推奨)

  2. をXSLTに変換します。

W3Cの仕様は、私が消化するのにはずっと時間がかかり、変換するドキュメントはあまり大きくありません。

+2

実際に*閉じる*の代わりにあなたのタイトルを「... [closed]」に編集しましたか?それはどのように動作するはずではありません。あなたが質問を閉じる必要がある場合は、 "近い"リンクを探してください。 – Tomalak

答えて

2

XSLTはかなり後方互換性があるはずですが、明らかに、XSLT 2.0で使用できることがあれば、人生をはるかに簡単にすることができます。

あなたのXSLTに何か問題があるように聞こえますが、私たちが見るために何かを提供していないので、言い難いです。

Kernow-for-Saxonを取得することをお勧めします.XSLTをテストするための素晴らしいUIです(FirefoxやIEを使用するよりもはるかに優れています)。XSLTにエラーがある場合、SaxonはXSLTプロセッサーを使用して原因を特定しようとすると、エラーが発生しやすくなります。

http://kernowforsaxon.sourceforge.net/

正しくXSLTを処理していない彼らにエラーがある私は、PHPやQtのプロセッサのいずれかについては何も知りませんが、それは可能です。

+0

こんにちはsamjudson、今日、私はXMLとXSLTの両方のファイルをアップロードして、あなたがチェックできるようにします。ありがとうございました! – Viet

1

スペック全体が長すぎる場合は(???)、Changesセクションから始めてください。

また、XSLTProcessorは単なるラッパーラウンドのlibxsltであり、有効なXSLT 1.0トランスフォームで破損する可能性は低いです。 2.0へ行くことなく修正できる、またはXSLTProcessorデプロイメントに何か問題がある場合には、変わったことがあるかどうか分かりません。あなたは他の変換をうまく適用できますか?

+0

返信いただきありがとうございます。私は、一致するタグにXPathを使用します。私はIEとFirefoxで試してみましたが、彼らは働いていましたが、私が言及したように他のツールでは動作しませ私はW3Schoolツールを調整しようとしています。これまでのところそれは動作しません。 – Viet

+1

@Viet:私の推測では、あなたが何か間違っているということもあります。 XSLT 2.0プロセッサが1.0のコードを正常に実行するという事実を別にすれば、XSLT 2.0仕様を読むのではなく、エラーを見つけるのにあなたの時間を費やす方が良いと思います。 – Tomalak

+0

私はTidyがHTMLを厳密なXMLに変換するのではなく、私がリストアップしたXSLTパーサーが出力を出さないことを発見しました。代わりにMozilla nsIXSLTProcessorを使用します。 HTMLの入力は私によって制御されないので、私はそれを何もすることはできません。とにかくありがとう。 – Viet

0

hardworkと痛みを伴う検査の多くの後、私は答えを自分で見つけ:私は<html xslmn="...">の代わりを持っていたとして

  1. 有効なXSLT 1.0のファイルは、有効なXSLT 1.0のファイルである
  2. PHPとQt C++に失敗しましたただ<html>(IE & FFは正常に変換できました)。簡単にするために、<html>タグの<!DOCTYPE<attributesを削除しました。

ディスカッションに参加いただき、ありがとうございました。

+0

最初のコメントに問題があります。修正してください。 –