hiya,
I add new nodes to an xmlDoc.
I want to add "innerText" to every newly-created node.
current XML file
<code>
<rows>
<row>
<PRODUCT-TYPE>bike</PRODUCT-TYPE>
<PRODUCT-DATE>01/01/2004</PRODUCT-DATE>
<ADDED-NODE />
</row>
<PRODUCT-TYPE>Car</PRODUCT-TYPE>
<PRODUCT-DATE>01/01/2003</PRODUCT-DATE>
<ADDED-NODE />
</row>
</rows>
</code>
Ideally, after a successful transform, the XML file should be:
<code>
<rows>
<row>
<PRODUCT-TYPE>bike</PRODUCT-TYPE>
<PRODUCT-DATE>01/01/2004</PRODUCT-DATE>
<ADDED-NODE>1stCollect ionItemText<ADD ED-NODE />
</row>
<PRODUCT-TYPE>Car</PRODUCT-TYPE>
<PRODUCT-DATE>01/01/2003</PRODUCT-DATE>
<ADDED-NODE>2ndCollect ionItemText<ADD ED-NODE />
</row>
</rows>
</code>
I think I have to:
1) iterate thru my collection.
2)assign the ?current? element in the collection to the ?innerText? of the
newly created node.
<code>
For Each currNode In nodeList
Dim additionalNode As XmlElement = xmlDoc.CreateEl ement("<ADDED-
NODE>")
currNode.Insert After(additiona lNode, currNode.ChildN odes(5))
?So, I think that I should call my ?XsltArgumentLi st? code here
DoXsltArgStuff
Next
</code>
AT the moment, all my XsltArgumentLis t code does is read values from the
empty node
<code>
private sub DoXsltArgStuff
Dim xPathDoc As XPathDocument = New XPathDocument(A BB_FILE)
Dim myXslt As XslTransform = New XslTransform
myXslt.Load("xs ltArgList.xslt" )
Dim nav As XPathNavigator = xPathDoc.Create Navigator()
Dim arguments As XsltArgumentLis t = New XsltArgumentLis t
currCollection( )???
?I supect that I have to assign a value from my collection here.I somehow
have at ASSIGN this value to my newly-created node.
arguments.AddPa ram("argTransTy pe", "", nav.Select("row s/row"))
Dim memStream As MemoryStream = New MemoryStream
myXslt.Transfor m(nav, arguments, memStream, Nothing)
memStream.Seek( 0, SeekOrigin.Begi n)
Dim sReader As StreamReader = New StreamReader(me mStream)
MsgBox(sReader. ReadToEnd)
End Sub
<xslt>
<?xml version="1.0" ?>
<xsl:styleshe et version="1.0"
xmlns:xsl="http ://www.w3.org/1999/XSL/Transform">
<xsl:param name="argTransT ype" />
<xsl:template match="/">
<xsl:for-each select="$argTra nsType">
<xsl:value-of select="ADDED-NODE" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
</xslt>
I?m stuck at this point.As I say, this is all new ground for me.If another
approach is better, then please let me know ;-)
Can anyone help?Can I clarify anything?
Many thanks,
yogi
--
Message posted via http://www.dotnetmonster.com