Я пытаюсь проверить, существует ли элемент. Если это не так, я хотел бы добавить значение по умолчанию. Вот мой XML:после преобразования, xslt, чтобы добавить значение по умолчанию, где элемент xml не существует
<Transaction>
<InvoicePeriod>1</InvoicePeriod>
<Product>Shoe</Product>
</Transaction>
Если InvoicePeriod элемент оленья кожа существует, по умолчанию должно быть 1:
<Transaction>
<Product>Shoe</Product>
</Transaction>
Вот мой XSLT. «InvoicePeriod» предполагается превратить в «invoiceP» в универсальном формате (он работает), но, как уместить в этом, когда вы пишете код, чтобы изменить значение по умолчанию, если InvoicePeriod элемент оленья кожа существовать:
<xsl:template match="Transaction" >
<Transaction invoiceP="{InvoicePeriod}" >
<xsl:sequence select="concat($InvoicePeriod, '1'[not($InvoicePeriod)])"/>
</xsl:template>
Результат:
<Transaction>
<InvoiceP>1</InvoiceP>
<Product>Shoe</Product>
</Transaction>
Я не ясно, что ваша проблема. Что вы подразумеваете под * «как вписаться в это, когда вы пишете код для изменения по умолчанию» *? Я бы пошел на 'xsl: if' или даже' xsl: select' над тем, что вы написали, но в любом случае работает. Какая помощь вам нужна? – Borodin
Извините, что вы не поняли. Да, я попробовал xsl: выбрать и xsl: когда.Посмотрите здесь: \t \t \t \t \t \t \t \t \t \t \t \t 1 XSL: в противном случае> \t \t \t \t \t XSL: атрибут > он не работает, когда элемент xml не существует, который изменяется на значение по умолчанию '1' –
user1358072
Ваш xsl: когда кажется, что все в порядке. Только InvoicePeriod - это имя узла, а не атрибут в вашем примере. Therfor удаляет все '@' перед InvoicePeriod, и он должен это делать. ' \t \t \t \t \t \t \t \t \t \t \t ' –