2015-05-21 3 views
0

Возможно, XSLT может проверить значение и создать под ним другой ключ?XSLT: добавление ключа на основе другого ключа в XML

<url>http://xy.com/380094.jpg</url> 

Место, где 380094 - <product_code>.

и удалить Чайлдс, где доступный ключ находится под номером

<available>No</available> -

Оригинальный XML:

<?xml version="1.0"?> 
<xml> 
<produkt> 
    <product_code>380094</product_code> 
    <nazov_produktu>loremipsum</nazov_produktu> 
    <strucny_popis_produktu></strucny_popis_produktu> 
    <popis_produktu>loremipsum</popis_produktu> 
    <znacka>LOREMIPSUM</znacka> 
    <available>Yes</available> 
    <mj>ks </mj> 
    <cena>999</cena> 
</produkt> 
<produkt> 
    <product_code>000161</product_code> 
    <nazov_produktu>loremipsum2</nazov_produktu> 
    <strucny_popis_produktu></strucny_popis_produktu> 
    <popis_produktu></popis_produktu> 
    <znacka>LOREM</znacka> 
    <available>No</available> 
    <mj>sad</mj> 
    <cena>19,90</cena> 
</produkt> 
</xml> 

Пример вывода:

<?xml version="1.0"?> 
<xml> 
<produkt> 
    <product_code>380094</product_code> 
    <url>http://xy.com/380094.jpg</url> 
    <nazov_produktu>loremipsum</nazov_produktu> 
    <strucny_popis_produktu></strucny_popis_produktu> 
    <popis_produktu>loremipsum</popis_produktu> 
    <znacka>LOREMIPSUM</znacka> 
    <available>Yes</available> 
    <mj>ks </mj> 
    <cena>999</cena> 
</produkt> 
</xml> 
+2

Ваш вопрос не ясен. Пожалуйста, разместите свой XSLT (желательно сведено к минимуму). –

+0

Вот оно. На данный момент это просто отфильтровывает доступность (спасибо @Patrick Bracken) http://xsltransform.net/pPqsHTT – Adrian

+1

Я имел в виду ваш * существующий * XSLT-код. Вы упомянули о втором прогоне; Я бы хотел увидеть первый прогон. Вы упомянули о добавлении второго ключа; Я бы хотел увидеть первый ключ. Я также не уверен, где именно находится код ' http://xy.com/380094.jpg'. –

ответ

0

Вы можете попробовать делать выбрать как

select=produkt[available != 'No'] 

Так что, если вы находитесь в цикле, например

<xsl:for-each select=produkt[available != 'No']> 
    //do stuff 
</xsl:for-each> 
Смежные вопросы