これは非常に複雑な問題であり、XSLTに関する私の知識を超えています。私はまだ学習中であり、O'ReillyのXSLTの本をどれだけ読んでも、頭上にいます。
入力XMLファイルを作成した多面的な問題があり、後で要件についても説明します。
入力
<roottag>
<body>
<header>
<r>
<c>
<d>Header Tag</d><!-- This can include spaces-->
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag A</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value A</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag B</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value B</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag C</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value C</d>
<e>System generated trash</e>
</c>
</r>
</header>
<information>
<r>Body of document</r>
<r>Appears here but have an XSLT that deals with this</r>
</informtaion>
<footer>
<r>
<c>
<d>Footer Tag</d><!-- This can include spaces-->
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag A</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value A</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag B</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value B</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag C</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value C</d>
<e>System generated trash</e>
</c>
</r>
</footer>
</body>
</roottag>
出力
<?xml version="1.0" encoding="utf-8"?>
<roottag>
<body>
<header>
<HeaderTag>
<!-- without spaces -->
<HeaderName>Header Tag</HeaderName>
<!-- This needs to preserve spaces-->
</HeaderTag>
<SubHeaderTagA>
<!-- without spaces -->
<HeaderName>Sub Header Tag A</HeaderName>
<!-- This needs to preserve spaces-->
<HeaderValue>Sub Header Value A</HeaderValue>
</SubHeaderTagA>
<SubHeaderTagB>
<HeaderName>Sub Header Tag B</HeaderName>
<HeaderValue>Sub Header Value B</HeaderValue>
</SubHeaderTagB>
<SubHeaderTagC>
<HeaderName>Sub Header Tag C</HeaderName>
<HeaderValue>Sub Header Value C</HeaderValue>
</SubHeaderTagC>
</header>
<information>
<r>Body of document</r>
<r>Appears here but have an XSLT that deals with this</r>
</information>
<footer>
<FooterTag>
<FooterName>Footer Tag</FooterName>
</FooterTag>
<SubFooterTagA>
<FooterName>Sub Footer Tag A</FooterName>
<FooterValue>Sub Footer Value A</FooterValue>
</SubFooterTagA>
<SubFooterTagB>
<FooterName>Sub Footer Tag B</FooterName>
<FooterValue>Sub Footer Value B</FooterValue>
</SubFooterTagB>
<SubFooterTagC>
<FooterName>Sub Footer Tag C</FooterName>
<FooterValue>Sub Footer Value C</FooterValue>
</SubFooterTagC>
</footer>
</body>
</roottag>
それで、私が見ている問題と私が直面している問題を説明します。
- スペースの削除: roottag / body / header / r / c / d内に保持されている値にはスペースが含まれることがあり、多くの場合、スペースが含まれることが多いため、サイト[addLink]の質問から見つけたこれを削除する方法が必要ですが、これも値を置き換えますそのため、プロセスの後半でデータを使用するようになると、出力に必要なスペースがなくなります。
- Rを最初の値のみに置き換える: これを行う方法がわかりません。私が試したり調べたりしたことはすべて、2番目の値を値として使用しているようです。私はそれで終わりです。
ヘッダーまたはフッターの名前/値: これが可能である場合でも、私の知識は限られていますか、またはタグごとに個別の一致が必要ですか?
ヘッダーとフッタータグの移動: これを必要な出力に含めていませんが、これを行う必要があると思います-ヘッダータグとフッタータグをbodyタグの外に移動することは可能ですか?したがって、XMLは次のようになります。roottag-header-body-information-/ body-footer /-/ rt
さらに詳しい説明が必要な場合は、お知らせください。