У меня есть XMLКак пропустить некоторые элементы XSLT, если какой-либо элемент XML не существует в определении?
<?xml version="1.0"?>
<data>
<element>
<A>192.168.188.100</A>
<B>/shelf=1</B>
<C></C>
</element>
<element>
<A>192.168.188.100</A>
<B>/slot=1</B>
</element>
<element>
<A>192.168.188.23</A>
<B>/port=client:1:3:1-2</B>
</element>
</data>
У меня есть отображение XSLT, которая работает:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:max="http://www.ibm.com/maximo">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<max:SyncCIDW>
<max:CIDWSet>
<xsl:apply-templates select="data/element" />
</max:CIDWSet>
</max:SyncCIDW>
</xsl:template>
<xsl:template match="element">
<max:CI>
<max:CINUM><xsl:value-of select="A"/></max:CINUM>
</max:CI>
</xsl:template>
</xsl:stylesheet>
Но теперь я хочу, чтобы обрабатывать только те элементы, которые имеют элемент C
в определении. Таким образом, элемент C
может иметь значение или нет, но должен быть обработан только ELEMENT, который имеет C
?
Итак, в основном мой вывод для этого примера должен иметь только 1 элемент в результате.
Благодаря
Привет, Мартин, извините, если у меня может возникнуть еще один вопрос: что, если кроме элемента C я должен иметь и некоторый элемент D для обработки этого XML?, Поэтому он означает, что должны выполняться несколько условий, чтобы иметь как C, так и D ? – Dejan
возможно ли это в этом случае - data/element [C] [D] или что такое правильный синтаксис? – Dejan
'data/element [C] [D]' проверяет, что 'element' имеет как (хотя бы один) элемент' C' и 'D'. Вы также можете написать 'data/element [C и D]', если хотите. –