XML翻訳に関する質問があります。私は別のXMLに変換するXMLを持っています。 私のxlsはかなり簡単です。私が望むフィールドを取るだけです。私が気づいているのは、例えば、私が1,2,3,4を持っていて、私のxslに私はただ私が1,3を望むと決めたら、2も同様に来るということです。私はxslについてデフォルトルールなどを読むことを信じています:...XSLでXMLタグを無視する
私は望んでいないものでも、各タグのルールを作成する必要はありますか? 私は欲しくないものをどうすれば処理できますか? (私はいくつかのことを試みましたが、まだそれを出力します)。 まっすぐなXML 2 XML翻訳にはチュートリアルや良いページはありますか?
すべての洞察力は素晴らしいです、私はグーグルにもっと離れています。
ありがとうございました。
それが現在にマッチフィルターなしで立っているように、これは私のXSLです:
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" method="xml" />
<!--FileImport-->
<xsl:template match="FileImport">
<FileImport>
<xsl:apply-templates />
</FileImport>
</xsl:template>
<!--Start-->
<xsl:template match="Start">
<Start>
<xsl:apply-templates />
</Start>
</xsl:template>
<xsl:template match="StartParam">
<StartParam>
<xsl:attribute name="name">
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="@value" />
</xsl:attribute>
</StartParam>
</xsl:template>
<!-- CLip -->
<xsl:variable name="fields" select="'|clip|number|technical_comments|channel|'" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="Clip">
<xsl:copy>
<xsl:apply-templates select=
"*[contains($fields, concat('|', @name, '|'))]" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
そして、私のXMLのビットが
<?xml version="1.0" encoding="windows-1252" ?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<FileImport>
<Global>
<GlobalParam name="RollName" value="Scene1" />
<GlobalParam name="TapeOrg" value="10:00:00:00" />
<GlobalParam name="ReadStart" value="00:00:00:00" />
<GlobalParam name="ReadDuration" value="00:02:26:18" />
</Global>
<Roll>
<Field name="ingest_report" value="<?xml version="1.0" standalone="yes"?>
<DataSet1
</Roll>
<Clip>
<Field name="audio_format" value="" group="Ingest" />
<Field name="camera_id" value="" group="Ingest" />
</Clip>
</FileImport>
で、うまくいけば、私の出力は
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="testFIDEF.xsl"?>
<FileImport>
<Global>
<GlobalParam name="RollName" value="Scene_Around_Six_Tape_3_BUFVC003-14 10:00:00:00" />
<GlobalParam name="TapeOrg" value="10:00:00:00" />
<GlobalParam name="ReadStart" value="00:00:00:00" />
<GlobalParam name="ReadDuration" value="00:02:26:18" />
</Global>
<MasterClip>
<Field name="clip_description" value="Interview Captain Austin Ardill re Terence O'Neill" group="Ingest" />
<Field name="rushes_roll_number" value="BUFVC003" group="Ingest" />
<Field name="source_image_format" value="" group="Ingest" />
<Field name="technical_comments" value="" group="Ingest" />
</MasterClip>
</FileImport>
のようになります。
あなたが間違っている箇所を確認できるように、コードを投稿しておけば本当に便利です。 –
これは実際にトランスフォームのデザインに依存します。 –
あなたはそれがまだ十分ではないと思っていると思います。たとえば、 ' 'という命令では、現在のコンテキストのすべての子にテンプレートを適用します。明示的にそれらの子供を管理していない場合、組み込みのルールはバックグラウンドで動作し、したがっていくつかの驚きを行います。 XML入力と必要な出力を表示する必要があります。 –