1
XMLを整理することを任されていますので、やや緩やかなDTDにもかかわらず、すべて同じ方法で宣言されています。例えば、XSLTが存在する場合、その要素を移動するにはどうすればいいですか?
<all>
<e>
<hg>
<hw>things</hw>
<posg><pos value="abc" /></posg>
</hg>
<sg><se1 /></sg>
</e>
<e>
<hg>
<hw>stuff</hw>
<posg><pos value="def" /></posg>
</hg>
<sg>
<se1>
<posg><pos value="ghi" /></posg>
</se1>
</sg>
</e>
</all>
以下の要素に<posg>
要素が<se1>
なく<hg>
の子でなければなりません。さらに、<se1>
要素に<posg>
要素がすでに存在する場合は、の最初の子要素として新しい<se1>
要素を作成し、次に要素を<hg>
要素から新しい<se1>
要素に移動する必要があります。
効果で、その後、上記の2つの要素は、私が不正<posg>
要素が<hg>
内に存在するかどうかを確認してから、上記の適切な行動をとる方法で苦労されている
<all>
<e>
<hg>
<hw>things</hw>
</hg>
<sg>
<se1>
<posg><pos value="abc" /></posg>
</se1>
</sg>
</e>
<e>
<hg>
<hw>stuff</hw>
</hg>
<sg>
<se1>
<posg><pos value="def" /></posg>
</se1>
<se1>
<posg><pos value="ghi" /></posg>
</se1>
</sg>
</e>
</all>
変換した後、次のようになります。
このソリューションは、それがHGの要素から全体にコピーする一切posgがない場合でも、SGに余分SE1の子に追加することを除いて動作します。そのようなことをやめたり、生成された空のse1要素を削除するにはどうすればいいですか? – Hmobius
問題ありません。私は 'を' ' と' '(スクリプトを見てください)でラップしました。したがって、 ''タグは、内部に何かがある場合にのみ生成されます。 –