all groups > dotnet xml > july 2007 >
You're in the

dotnet xml

group:

Extracting hyperlink data from XML file


Re: Extracting hyperlink data from XML file Martin Honnen
7/30/2007 12:00:00 AM
dotnet xml:
[quoted text, click to view]


[quoted text, click to view]

That fragment is not well-formed XML with namespaces as several prefixes
(soapenc, soapenv, xsi, ns1829687187) are not bound to a namespace URI.
So we need to see the namespace declarations if you need help processing
that XML.

--

Martin Honnen --- MVP XML
Extracting hyperlink data from XML file Jonathan Attree
7/30/2007 3:52:01 AM
Hi
I need to extract the data from the following XML file (fragment) which
consists of and order number (in this case 415045) and some related part
numbers into a .NET dataset. The part number data is contained in other parts
of the file which are referenced by links to named anchors eg I need to
extract the 'id190' from this line of code: <ns1829687187:Part
href="#id190"/>.

How do I do this please?
Am new to XML so any help much appreciated.
Jonathan Attree

<multiRef id="id141" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBOrder">
<ns1829687187:orderNum xsi:type="xsd:string">415045</ns1829687187:orderNum>
<ns1829687187:buildDate
xsi:type="xsd:dateTime">2007-07-10T23:00:00.000Z</ns1829687187:buildDate>
<ns1829687187:buildSeq xsi:type="xsd:long">515</ns1829687187:buildSeq>
<ns1829687187:vehicleLine xsi:type="xsd:string">TLS</ns1829687187:vehicleLine>
<ns1829687187:offlineDate xsi:type="xsd:dateTime" xsi:nil="true"/>
<ns1829687187:Part href="#id190"/>
<ns1829687187:Part href="#id191"/>
<ns1829687187:Part href="#id192"/>
<ns1829687187:Part href="#id193"/>
<ns1829687187:Part href="#id194"/>
<ns1829687187:Part href="#id195"/>
<ns1829687187:Part href="#id196"/>
<ns1829687187:Part href="#id197"/>
<ns1829687187:Part href="#id198"/>
<ns1829687187:Part href="#id199"/>
<ns1829687187:Part href="#id200"/>
<ns1829687187:Part href="#id201"/>
<ns1829687187:Part href="#id202"/>
<ns1829687187:Part href="#id203"/>
<ns1829687187:Part href="#id204"/>
<ns1829687187:Part href="#id205"/>
Re: Extracting hyperlink data from XML file Jonathan Attree
7/30/2007 6:46:03 AM

[quoted text, click to view]

Thanks for the reply.
Here is a truncated version of the whole file:

<soapenv:Envelope>
<soapenv:Body
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<getOrdersForDateRangeResponse>
<FilteredOrders href="#id0"/>
</getOrdersForDateRangeResponse>

<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBFilter">
<ns1829687187:filterId xsi:type="xsd:int">94</ns1829687187:filterId>
<ns1829687187:Orders href="#id4"/>
<ns1829687187:Orders href="#id5"/>
</multiRef>

<multiRef id="id5" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBOrder">
<ns1829687187:orderNum xsi:type="xsd:string">097294</ns1829687187:orderNum>
<ns1829687187:buildDate
xsi:type="xsd:dateTime">2007-07-10T23:00:00.000Z</ns1829687187:buildDate>
<ns1829687187:buildSeq xsi:type="xsd:long">179</ns1829687187:buildSeq>
<ns1829687187:vehicleLine
xsi:type="xsd:string">TLS</ns1829687187:vehicleLine>
<ns1829687187:offlineDate xsi:type="xsd:dateTime" xsi:nil="true"/>
<ns1829687187:Part href="#id910"/>
<ns1829687187:Part href="#id911"/>
<ns1829687187:Part href="#id912"/>
</multiRef>

<multiRef id="id910" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBPart">
<ns1829687187:prefix xsi:type="xsd:string">XH42</ns1829687187:prefix>
<ns1829687187:base xsi:type="xsd:string">017B22</ns1829687187:base>
<ns1829687187:suffix xsi:type="xsd:string">AA</ns1829687187:suffix>
<ns1829687187:partDesc xsi:type="xsd:string">SHLD VEH IDENT
LBL</ns1829687187:partDesc>
<ns1829687187:freeTextField xsi:type="xsd:string">VIN STAMP CLEAR
COVER</ns1829687187:freeTextField>
<ns1829687187:qty xsi:type="xsd:double">1.0</ns1829687187:qty>
<ns1829687187:supplier xsi:type="xsd:string">L7MTA</ns1829687187:supplier>
<ns1829687187:lineFeedLoc1 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc2 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc3 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc4 xsi:type="xsd:string" xsi:nil="true"/>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>

The top element with type 'ns1829687187:FormatBFilter' is a list of orders
which are assigned arbitrary id nos as links (#id4, #id5). These links refer
down to next element (type 'ns1829687187:FormatBOrder') which contains the
order number. This element also contains a list of parts related to the order
no. that are also assigned id nos. (#id910, #id911, #id912). These links in
turn refer to the final element containing the part nos (prefix, base and
suffix) which is the data I need to extract from the file along with the
order no.

Hope this helps.

Re: Extracting hyperlink data from XML file Jonathan Attree
7/30/2007 7:20:01 AM


[quoted text, click to view]

These are the declarations at the top of the file:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getOrdersForDateRangeResponse
xmlns="http://obom/service/FormatB"><FilteredOrders href="#id0"
xmlns=""/></getOrdersForDateRangeResponse>

<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBFilter"
xmlns:ns1829687187="http://obom/service/types" xmlns="">
<ns1829687187:filterId xsi:type="xsd:int">94</ns1829687187:filterId>
<ns1829687187:Orders
..
..
..

This file is generated by my customer so I have no control over its structure.

Thanks
Re: Extracting hyperlink data from XML file Martin Honnen
7/30/2007 3:54:31 PM
[quoted text, click to view]

That is not well-formed either, it needs namespace declarations e.g
<soapenv:Envelope xmlns:soapenv="someURI">


--

Martin Honnen --- MVP XML
Re: Extracting hyperlink data from XML file Martin Honnen
7/30/2007 4:31:41 PM
[quoted text, click to view]

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("file.xml");
XmlNamespaceManager namespaceManager = new
XmlNamespaceManager(xmlDoc.NameTable);
namespaceManager.AddNamespace("ns1829687187", "http://obom/service/types");
foreach (XmlElement part in xmlDoc.SelectNodes("//ns1829687187:Part",
namespaceManager)) {
Console.WriteLine("href is \"{0}\".", part.GetAttribute("href"));
}

If you only want to access the first Part element then use
SelectSingleNode instead of SelectNodes.


--

Martin Honnen --- MVP XML
Re: Extracting hyperlink data from XML file Jonathan Attree
8/17/2007 4:30:02 AM


[quoted text, click to view]

Hi again
Thanks for this. I need to do this in VB and have got this far but am having
trouble with For loop:

Dim XMLResponseDoc As New XmlDocument
Dim nsManager As New XmlNamespaceManager(XMLResponseDoc.NameTable)
Dim element As New XmlElement

XMLResponseDoc.Load(strXMLResponseFile)
nsManager.AddNamespace("ns1829687187", "http://obom/service/types")
For Each

Next

A VB version would be much appreciated.

Thanks
Re: Extracting hyperlink data from XML file John Saunders [MVP]
8/17/2007 9:40:05 PM
"Jonathan Attree" <JonathanAttree@discussions.microsoft.com> wrote in
message news:9A5801CD-A42E-4369-A2EC-F01435CB9534@microsoft.com...
[quoted text, click to view]

The syntax for the For loop would be:

For Each part As XmlElement In xmlDoc.SelectNodes("//ns1829687187:Part",
namespaceManager)
Console.WriteLine("href is ""{0}"".", part.GetAttribute("href"))
Next

--
John Saunders [MVP]
Re: Extracting hyperlink data from XML file Jonathan Attree
8/20/2007 7:32:07 AM
[quoted text, click to view]

Thanks very much.

AddThis Social Bookmark Button