xsltを使用してxmlファイルに値を追加しようとしています。 だから基本的に私はこのXMLファイル1.xml2番目のxmlファイルのデータを使用してxmlノードに値を追加する(マージ)
<?xml version="1.0" encoding="UTF-8"?>
<Orderfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<order>
<establishmenthour>10:38:00</ establishmenthour>
<ExpirationDate/>
<acc/>
<identification>170610009-01</identification>
</order>
<order>
<establishmenthour>10:40:00</ establishmenthour>
<ExpirationDate/>
<acc/>
<identification>170610910-03</identification>
</order>
<order>
<establishmenthour>10:42:00</ establishmenthour>
<ExpirationDate/>
<acc/>
<identification>170610015-01</identification>
</order>
を持っていると私は2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Orderfile>
<order>
<identification>170610009-01</identification>
<ExpirationDate>2017-06-21</ExpirationDate>
</order>
<order>
<identification>170610015-01</identification>
<ExpirationDate>2017-02-22</ExpirationDate>
</order>
<order>
<identification>170610024-01</identification>
<ExpirationDate>2017-08-02</ExpirationDate>
</order>
</Orderfile>
と呼ばれる2番目のXMLファイルからこれらの情報を持っていると私はそれを持っていると思います - >マージ
<?xml version="1.0" encoding="UTF-8"?>
<Orderfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<order>
<establishmenthour>10:38:00</establishmenthour>
<ExpirationDate>2017-06-21</ExpirationDate/>
<acc/>
<identification>170610009-01</identification>
</order>
<order>
<establishmenthour>10:40:00</ establishmenthour>
<ExpirationDate/>
<acc/>
<identification>170610910-03</identification>
</order>
<order>
<establishmenthour>10:42:00</ establishmenthour>
<ExpirationDate>2017-02-22</ExpirationDate/>
<acc/>
<identification>170610015-01</identification>
</order>
.XML私はtexteファイルを読み、私は有効期限を追加ツイルxmlファイルへの«ID»その試合をしたいと思います。
これは私が試したものです:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="version">
<xsl:copy>
<xsl:apply-templates select="*"/>
<xsl:apply-templates select="document('2.xml')/Orderfile/order/*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
しかし、それは、あなたは私を助けてくださいすることができます働いていません。ここで
ハードコードされた値私はそれを行うことができることに気づくでしょう。それから私はbashスクリプトを使って新しいxsltを生成します(値を修正しながらコピーする)。 – Rflow
"texte"ファイルを制御できますか?それがXMLファイルであればはるかに簡単です。 XSLT 1.0では、 'document'関数を使って他のファイルにアクセスしますが、そのファイルはXMLである必要があります。また、XMLの場合は、IDを一致させる方が簡単です。 –
'id(170610009-01)'は '170610009'から' 01'を差し引いた後、 'id'関数を呼び出してナンセンスにします。さらに、 'id'関数は' ID'属性を定義するDTDでのみ機能します。一般的には、XSLT 2.0に移動する方が良いです。ここで、 'unparsed-text'を使ってテキストファイルを読み込み、' tokenize'や 'xsl:analyze-string'で正規表現を使用してから、データは必要に応じて –