Преобразование XML в текстовый файл с помощью XSLT
How can i write multiple values in the same line and value should be write between specific position.
XML-файл:
<?xml version="1.0" encoding="us-ascii" standalone="yes"?> <Invoice> <InvoiceHeader CustomerName="Pankaj" Address="Address1" City="SURAT" BillNo= "123" Date="02/08/2018"></InvoiceHeader > <Product ID="1" Name="KeyBoard" Qty="25" Price="250.00"></Product> <Product ID="2" Name="Monitor" Qty="15" Price="6700.00"></Product> <Product ID="3" Name="CPU" Qty="5" Price="11000.00"></Product> </Invoice>
Выходной Текстовый Файл:
Customer: PANKAJ Date: 02/08/2018 Address: ADDRESS1 BillNo: 123 City: SURAT SrNo Item QTY Price Amount ========================================================= 1 keyboard 0025 000250.00 00006250.00 2 Monitor 0015 006700.00 00100500.00 3 CPU 0005 011000.00 00055000.00 =========================================================== Total 0045 00461750.00
Что я уже пробовал:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:text> Customer: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@CustomerName" /><xsl:text> </xsl:text><xsl:text> </xsl:text> <xsl:text> Date: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@Date" /><xsl:text></xsl:text><xsl:text></xsl:text> <xsl:text> Address: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@Address" /><xsl:text></xsl:text> <xsl:text> City: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@City" /><xsl:text> </xsl:text><xsl:text> </xsl:text> <xsl:text>BillNo: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@BillNo" /> <xsl:text></xsl:text> <xsl:text> City: </xsl:text><xsl:value-of select="Invoice/InvoiceHeader/@City" /><xsl:text></xsl:text> <xsl:text>SrNo</xsl:text><xsl:text> </xsl:text> <xsl:text>Item</xsl:text><xsl:text> </xsl:text> <xsl:text>Qty</xsl:text><xsl:text> </xsl:text> <xsl:text>Price</xsl:text><xsl:text> </xsl:text> <xsl:text>Amount</xsl:text> <xsl:text></xsl:text> <xsl:text>=====================================================================</xsl:text><xsl:text></xsl:text> <xsl:for-each select="Invoice/Product"> <xsl:value-of select="./@ID" /><xsl:text> </xsl:text> <xsl:value-of select="./@Name" /><xsl:text> </xsl:text> <xsl:value-of select="./@Qty" /><xsl:text> </xsl:text> <xsl:value-of select="./@Price" /><xsl:text> </xsl:text> <xsl:value-of select="./@Qty * ./@Price" /><xsl:text></xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Patrice T
Вы забыли указать свой xslt-файл.
Eric Lynch
Я согласен с ppolymorphe, вам нужно добавить свой XSLT-файл в вопрос. Потому что его нет, я предполагаю (возможно), что вы еще ничего не пробовали. Дайте ему попробовать!
Обновите свой исходный вопрос, чтобы добавить XSLT и попросить более конкретную помощь. Тогда, я думаю, вы найдете гораздо больше людей, готовых помочь вам. Мало кто, включая меня, может написать все это для вас. Нам обычно платят за такого рода "помощь" :)
Вот несколько ссылок, которые помогут вам начать работу. Удачи.
https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor/Basic_Example
https://www.w3schools.com/xml/xsl_intro.asp
Кроме того, вы можете упомянуть, как вы планируете выполнить преобразование XSLT. Например, планируете ли вы использовать инструмент командной строки? Если да, то какой? Или вы планируете вызвать его из какого-то языка программирования? Если да, то какой?
OriginalGriff
И что же?
Какую помощь вы хотите от нас?
Где ты застрял?
А что вы пробовали?
Мы понятия не имеем, какой код вы используете, даже язык!
Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
Nelek
он обновился, я все еще не очень хорошо понимаю, чего он хочет, но вы, возможно, захотите попробовать :)