2012-01-13 3 views
0

Я генерирую html, используя XSL во время выполнения. Моя задача - распечатать раздел подписи после печати всех данных. Я печать данных, как это:

Клиент 1 Данные
Заказчика 2 Данные
Заказчика 3 Данные
Заказчика 4 Данные
Заказчика 5 данных

Заказчика 2 Подписи
Печать статического содержимого после всего содержимого

Каждых данные клиента имеют идентификатор, имя, адрес и т. д., до 5 деталей для каждого клиента. В конце всех данных клиента мне нужно распечатать раздел подписи клиента 2. В настоящее время данные клиента работают до 3 страниц, а раздел владельца печатается только на первой странице. Но мне нужен клиент 2 в конце 3-х страниц.

Посмотрите на образец XML ..

<t> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
</t> 


Мне нужен выход, как этот

Customer 1 data 

    Customer 2 data 

    Customer 3 data 

    Customer 4 data 

    Customer 5 data 

    Customer 2' Signature. 
+1

Всегда полезно предоставить полный (но небольшой XML-документ источника) и точный желаемый результат. Без этого любой ответ - это просто догадка. –

+0

^Отредактированный вопрос. – sgowd

+0

К сожалению: P Исходный код - это производственный код ... не могу его разместить здесь, и мне нужно решить проблему раньше. Сейчас это работает. Спасибо огромное! – sgowd

ответ

1

Это преобразование:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/*"> 
    <xsl:apply-templates/> 

    <xsl:apply-templates mode="sign" select= 
    "customer[@id=2]/SignatureSection"/> 
</xsl:template> 

<xsl:template match="customer"> 
Customer <xsl:value-of select="position()"/> data 
</xsl:template> 

<xsl:template match="SignatureSection"/> 

</xsl:stylesheet> 

при нанесении на следующем документе XML (поскольку поддельный XML обеспечивается ленивым OP бесполезно):

<t> 
    <customer id="1"> 
    Some Customer1 Data 

    <SignatureSection id="1"> 
     Signature of Customer1 
    </SignatureSection> 
    </customer> 
    <customer id="2"> 
    Some Customer2 Data 
    <SignatureSection id="2"> 
     Signature of Customer2 
    </SignatureSection> 
    </customer> 
    <customer id="3"> 
    Some Customer3 Data 
    <SignatureSection id="3"> 
     Signature of Customer1 
    </SignatureSection> 
    </customer> 
    <customer id="3"> 
    Some Customer4 Data 
    <SignatureSection id="4"> 
     Signature of Customer4 
    </SignatureSection> 
    </customer> 
    <customer id="5"> 
    Some Customer5 Data 
    <SignatureSection id="5"> 
     Signature of Customer5 
    </SignatureSection> 
    </customer> 
</t> 

производит то, что мы догадываемся может быть разыскиваемым результат:

Customer 1 data 

Customer 2 data 

Customer 3 data 

Customer 4 data 

Customer 5 data 

     Signature of Customer2 
+0

Это та же страница. Подпись появляется на первой странице, где данные работают до 4 страниц. Результатом является перекрытие данных на первой странице. – sgowd

+0

@ sans481: Извините, я не понимаю ни слова вашего комментария и того, как это связано с этим ответом. Если вы изменили проблему (снова), пожалуйста, не стесняйтесь задавать новый вопрос - на этот раз постарайтесь предоставить хотя бы основные данные, чтобы сделать этот вопрос, который не требует угадывания. –

Смежные вопросы