Try this function instead :
Function GetPoNo(ByVal island As String) As String
Return
XElement.Parse(island).<DownloadPurchaseOrder>.<PurchaseOrder>.<Header>....@pon
o
End Function
From: [email protected] [mailto:[email protected]]
On Behalf Of Anthony
Sent: Wednesday, 10 November 2010 12:50 PM
To: 'ozDotNet'
Subject: vb.net xml help
I am using Xpath to get a value but fails when the xml has an element of the
form <ns0:PurchaseOrderSent xmlns:ns0="http://www.buylink.com.au">
</ns0:PurchaseOrderSent> BUT works when its of the form <ns0
xmlns:ns0="http://www.buylink.com.au"></ns0 >
Anyone see the issues? Is <ns0:PurchaseOrderSent.. valid XML element?
FAILS
<ns0:PurchaseOrderSent xmlns:ns0="http://www.buylink.com.au">
<DownloadPurchaseOrder>
<PurchaseOrder>
<Header DocType="PO" PoNo="2192" />
</PurchaseOrder>
</DownloadPurchaseOrder>
</ns0:PurchaseOrderSent>
Function getXMLXpath(ByVal sXML As String) As String
Dim myEncoder As New System.Text.ASCIIEncoding
Dim bytes As Byte() = myEncoder.GetBytes(sXML)
Dim ms As MemoryStream = New MemoryStream(bytes)
Dim xpathDoc As XPathDocument
Dim xmlNav As XPathNavigator
Dim xmlNI As XPathNodeIterator
xpathDoc = New XPathDocument(ms)
xmlNav = xpathDoc.CreateNavigator()
Try
xmlNI =
xmlNav.Select("/ns0:PurchaseOrderSent/DownloadPurchaseOrder/PurchaseOrder/He
ader/@PoNo") //Excepytion Erros 'Namespace Manager or XsltContext needed.
This query has a prefix, variable, or user-defined function.'
While (xmlNI.MoveNext())
Return xmlNI.Current.Value
End While
Catch ex As Exception
End Try
End Function
WORKS
<ns0 xmlns:ns0="http://www.buylink.com.au">
<DownloadPurchaseOrder>
<PurchaseOrder>
<Header DocType="PO" PoNo="2192" />
</PurchaseOrder>
</DownloadPurchaseOrder>
</ns0 >
Function getXMLXpath(ByVal sXML As String) As String
Dim myEncoder As New System.Text.ASCIIEncoding
Dim bytes As Byte() = myEncoder.GetBytes(sXML)
Dim ms As MemoryStream = New MemoryStream(bytes)
Dim xpathDoc As XPathDocument
Dim xmlNav As XPathNavigator
Dim xmlNI As XPathNodeIterator
xpathDoc = New XPathDocument(ms)
xmlNav = xpathDoc.CreateNavigator()
Try
xmlNI =
xmlNav.Select("/ns0/DownloadPurchaseOrder/PurchaseOrder/Header/@PoNo")
While (xmlNI.MoveNext())
Return xmlNI.Current.Value 'Returns 2192
End While
Catch ex As Exception
End Try
End Function
<http://www.intellixperience.com/signup.aspx> Is your website being
IntelliXperienced? | www.yougoingmyway.com ?
regards
Anthony (*12QWERNB*)
Is your website being IntelliXperienced?