Hi,

here is the xml schema that I have.
<item>
<subitem1>Value1</subitem1>
<subitem2></subitem2>
</item>
<item>
<subitem1>Value2</subitem1>
<subitem2></subitem2>
</item>
...

I need to search a xml file, looking for a pattern (subitem="Value1"). When
found the subitem, update subitem2 with another value.

How can this be done?
Thanks in advance,

--
Ibai Peña

Re: How to search and update a xml file by Rick

Rick
Mon Aug 18 23:03:23 CDT 2003

Here is a routine I wrote to solve part of this problem. You could modify it
to return the actual node if you want to update it:



' This function replicates the SelectSingleNode MSXML function only
to the extent required by

' expressions such as /starting/next/next/element or
/starting/next/next/element/@attribute

Public Function SelectSingleNode(ByVal xmldoc As XmlDocument, ByVal
sInput As String) As String

Dim sSelect() As String, sXML As String, i As Integer, xNode As
XmlNode, tNode As XmlNode

' Break down the input string

sSelect = Split(sInput, "/")

If UBound(sSelect) < 1 Then Return ""

' Get the first node

xNode = xmldoc.GetElementsByTagName(sSelect(1)).Item(0)

' go to the next-to-last element

For i = 2 To UBound(sSelect) - 1

If xNode.HasChildNodes Then

For Each tNode In xNode.ChildNodes

If tNode.Name = sSelect(i) Then

xNode = tNode

Exit For

End If

Next

Else

Return ""

End If

Next

' Handle last node or attribute

If Mid(sSelect(i), 1, 1) = "@" Then

If xNode.Attributes(Mid(sSelect(i), 2)) Is Nothing Then

Return ""

Else

Return xNode.Attributes(Mid(sSelect(i), 2)).InnerText

End If

Else

For Each tNode In xNode.ChildNodes

If tNode.Name = sSelect(i) Then

xNode = tNode

Exit For

End If

Next

If xNode Is Nothing Then Return ""

Return xNode.InnerText

End If



End Function



"Ibai Peña" <igarle@hotmail.com> wrote in message
news:u5DOlmVZDHA.1940@TK2MSFTNGP10.phx.gbl...
> Hi,
>
> here is the xml schema that I have.
> <item>
> <subitem1>Value1</subitem1>
> <subitem2></subitem2>
> </item>
> <item>
> <subitem1>Value2</subitem1>
> <subitem2></subitem2>
> </item>
> ...
>
> I need to search a xml file, looking for a pattern (subitem="Value1").
When
> found the subitem, update subitem2 with another value.
>
> How can this be done?
> Thanks in advance,
>
> --
> Ibai Peña
>
>