We want to write XSLT transformation for given XML.
We are trying to text wrap for comment element at newline character on pressing of ENTER KEY. In that, <Comment>
elements Splits across 6 different line items after applying XSLT Transformation.
Note: Here "\n" is the linefeed character. It means end the present line and go to a new line.
We tried following :
Pattern observed in it:
<StockCode>
element is blank for all having comment substring at each line items. while StockCode element is having value for all those <comment>
element is blank
<OrderDetail>
is repeating node here.
Input XML :
<?xml version="1.0" encoding="WINDOWS-1252"?>
-<SalesOrders xsd:noNamespaceSchemaLocation="SORTOIDOC.XSD" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance">
-<Orders>
-<OrderHeader>
<Customer>000016</Customer>
<OrderDate>2016-04-19</OrderDate>
<SalesForceOrderNumber>ORD-411324</SalesForceOrderNumber>
</OrderHeader>
-<OrderDetails>
-<StockLine>
<StockCode>ABB-CDE-FGH-01</StockCode>
<OrderDescription>EDIORDER-SAVE COMMENTS C3 Generic LOC 0833 Expected arrival 01/07/2016 OTYPE NE TRKPC 01 GM/00007643020008361321</OrderDescription>
</comment>
<OrderLineID>OR-1561179</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails> ---------------------
-<StockLine>
<StockCode>Nil</StockCode>
</Comment>
<OrderLineID>OR-1561180</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
</Comment>
<OrderLineID>OR-1561181</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
</Comment>
<OrderLineID>OR-1561182</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
</Comment>
<OrderLineID>OR-1561183</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
</Comment>
<OrderLineID>OR-1561184</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders
Expected XML After XSLT transformation:
<?xml version="1.0" encoding="WINDOWS-1252"?>
-<SalesOrders xsd:noNamespaceSchemaLocation="SORTOIDOC.XSD" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance">
-<Orders>
-<OrderHeader>
<Customer>000016</Customer>
<OrderDate>2016-04-19</OrderDate>
<SalesForceOrderNumber>ORD-411324</SalesForceOrderNumber>
</OrderHeader>
-<OrderDetails>
-<StockLine>
<StockCode>ABB-CDE-FGH-01</StockCode>
<Comment>Nil</Comment>
<OrderLineID>OR-1561179</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails> ---------------------
-<StockLine>
<StockCode>Nil</StockCode>
<Comment>EDIORDER-SAVE COMMENTS</Comment>
<OrderLineID>OR-1561180</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
<Comment>C3 Generic</Comment>
<OrderLineID>OR-1561181</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
<Comment>LOC 0833</Comment>
<OrderLineID>OR-1561182</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
<Comment>OTYPE NE</Comment>
<OrderLineID>OR-1561183</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders>
-<OrderDetails>
-<StockLine>
<StockCode>Nil</StockCode>
<Comment>TRKPC 01 GM/00007643020008361321</Comment>
<OrderLineID>OR-1561184</OrderLineID>
</StockLine>
</OrderDetails>
</Orders>
</SalesOrders
The above code splits into 6 diffrent line items(that is for each OrderLineID) In that,we are trying to Achieve Substring on comment field.
How to Write XSLT transformation file for Comment Substring at new line character?
Thanks in Advance !
To minimize the problem to the main question here, consider the following stylesheet:
XSLT 2.0
Applied to the following input:
XML
the result will be:
I have no idea where the contents of
OrderLineID
are supposed to come from.Important:
If the input
Comment
contains actual linefeed characters - IOW, if your actual input is:XML
then use:
Added:
Given the following input:
XML
the following stylesheet:
XSLT 2.0
will return:
Result