商品と商品を含むXMLファイルがあります。商品に商品が含まれている場合もあります。私は商品がない商品のみを手に入れたいです。xmlファイルから該当する商品の下に商品がない商品のみを取得します。
これは、私は、XMLファイル内でこのように私の出力をしたい、私の入力
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<prod-id>P16753</prod-id>
<product-status>CREATED</product-status>
<validation-status>Valid</validation-status>
<duplication-status>Unique</duplication-status>
<content-status>New</content-status>
<items/>
<created-on>2016-08-12T11:30:00</created-on>
<created-by>Administrator</created-by>
<last-changed-on>2016-08-04T17:34:00</last-changed-on>
<last-changed-by>ap0712</last-changed-by>
<delete>false</delete>
</product>
<product>
<prod-id>P16754</prod-id>
<product-status>CREATED</product-status>
<validation-status>Valid</validation-status>
<duplication-status>Unique</duplication-status>
<content-status>New</content-status>
<items>
<item>
<item-id>i16754</item-id>
<item-status>CREATED</item-status>
<validation-status>Valid</validation-status>
<duplication-status>Unique</duplication-status>
<content-status>New</content-status>
</item>
</items>
<created-on>2016-08-12T11:30:00</created-on>
<created-by>Administrator</created-by>
<last-changed-on>2016-08-04T17:34:00</last-changed-on>
<last-changed-by>ap0712</last-changed-by>
<delete>false</delete>
</product>
</products>
です。可能であれば、私は(私はこのフォーラムから得た)XSLTコードを持っていますが、私はこの作品
をすることはできませんよ、後でprod-id P16754
csvファイルに変換することができるように、私はタグを削除したいです
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<ns:WhiteList>
<name>prod-id</name>
</ns:WhiteList>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match=
"*[not(descendant-or-self::*[name()=prod-id[not(items/item)]document('')/*/ns:WhiteList/*])]"/>
</xsl:transform>
XMLではなくプレーンテキストが必要な場合は、IDテンプレートを使用することは意味がありません。 「アイテムがない商品のみを取得したい」と言うと、それは 'items/item'子孫なしで完全な' product'エレメントを選択したいということですか?あなたが望む出力スニペットには 'prod-id P16754'という要素が1つしか含まれておらず、完全な' product'ではなく、どのデータを出力したいのかを詳しく説明してください。 –