XML文書を変換したい。次のコード行が動作していない動的要素名
<ElementList>
<NewTag2007/>
<NewTag2006/>
<NewTag2005/>
</ElementList>
:
<xsl:element name="{concat('NewTag',Element/Year)}"/>
を出力するシリーズです私はにそれを変えたい
<svc:ElementList>
<svc:Element>
<Year>2007</Year>
</svc:Element>
<svc:Element>
<Year>2006</Year>
</svc:Element>
<svc:Element>
<Year>2005</Year>
</svc:Element>
</svc:ElementList>
:ソースXMLは次のようになります次のような要素があります。< NewTag> "//エレメント/年"
(...スペースなし)、"./Element/Year"、および"// SVC:エレメント/年"どちらか動作しません。 1つの複雑さは、「年」タグがデフォルト名前空間にある間に、「要素」タグが「svc」名前空間にあることです。
とにかく、私は名前空間の問題に直面しているのですか、または「concat()」関数を誤って使用していますか?
うれしいことに、解決策が機能すること。しかし、一般的には、実行時に実行時にタグ名を作成しないようにすることをお勧めします(ただし動作します)。私はより静的な方法でXML TAG構造を理解しています。私の解決策は次のようなものです:のような静的XMLタグをそのような属性で取得します。あなたはXSLTとXPathで "element [year =" 2007 "]を使ってそれにアクセスすることができますので、柔軟性を失うことはありませんが、セキュリティと一貫性を得るには... –
Sauer