多くの異なるプロセスの出力を「クリーンアップ」するxsltを作成しようとしています。私はすべての空の要素を削除したいが、いくつかは常に存在する必要があります。XSLT:特定の深さから空の要素を削除する
したがって、たとえば次のよう
<soap:Envelope>
<soap:Body>
<typ:GetSomeStuffReturn>
<typ:abcd>qwer</typ:abcd>
<typ:efgh/>
<typ:ijkl>asdf</typ:ijkl>
</typ:GetSomeStuffReturn>
</soap:Body>
</soap:Envelope>
は、これを実現する方法の例の多くは十分
<soap:Envelope>
<soap:Body>
<typ:GetSomeStuffReturn>
<typ:abcd>qwer</typ:abcd>
<typ:ijkl>asdf</typ:ijkl>
</typ:GetSomeStuffReturn>
</soap:Body>
</soap:Envelope>
簡単になるはずです。
しかし、この例
<soap:Envelope>
<soap:Body>
<typ:GetSomeStuffReturn>
<typ:abcd/>
<typ:efgh/>
<typ:ijkl/>
</typ:GetSomeStuffReturn>
</soap:Body>
</soap:Envelope>
は、私はこれを行う方法を考え出すことはできません
<soap:Envelope>
<soap:Body>
<typ:GetSomeStuffReturn/>
</soap:Body>
</soap:Envelope>
になるはずです。私が試したものは、どちらか一方の例では動作しますが、両方では動作しません。
私がいつも封筒、ボディ、そして第三が必要なコードもかかわらず、第3のノードが何であるかの仕事に必要という点で、それが最も可能性が高い常に「リターン」
に終わるさらに複雑になりますノードそう
<soap:Envelope>
<soap:Body>
<typ2:LookupThingsReturn>
<typ2:wxyz/>
<typ2:stuv/>
</typ2:LookupThingsReturn>
</soap:Body>
</soap:Envelope>
は、任意のヘルプやアドバイスをありがたく受け取っ
<soap:Envelope>
<soap:Body>
<typ2:LookupThingsReturn/>
</soap:Body>
</soap:Envelope>
になるはずです。
あなたはすでにあなたは「私はすべての空の要素を削除したいのですが、いくつかは、常にべきと言ったときに、自分自身と矛盾しているように見える –
行った作業を表示存在する」。私はあなたが空であるものを除いて、入力ツリーからすべての要素をコピーしたいと思っていると思います。そうすれば、出力ツリーに空のノードが生成されるかもしれません。 –
さらに、入力ツリーで空であっても、これらの要素を必ず結果ツリーにコピーする必要があるなど、第3レベルの入力要素に特別な意味を付けるかどうかは不明です。それとも、空の場合に取り除かなければならない要素の子供だけですか? –