Hi
I wonder if someone could see what I'm doing wrong here. Basically I have a xml file that consits of information about 2 pages. I have an asp page that fetch that information for me based on some criterias. But the tree structure is giving me problems. The xml file only consits of 2 pages, I would like the information to be written out like this...
Page nr 1
Some information about page 1 bla bla bla... and so on
Page nr 2
Some information about page 2 bla bla bla... and so on
But if you try the code below you will see that it doesnt quite come out that way. So I could use some help with this one.
<?xml version="1.0"?>
<PAGE>
<PAGE id="1">
<LANGUAGE id="17" name="Eng">
<NAME>name 1 Eng</NAME>
</LANGUAGE>
<LANGUAGE id="16" name="Swe">
<NAME>name 1 swe</NAME>
</LANGUAGE>
<LANGUAGE id="17" name="Eng">
<TEXT>text 2 Eng</TEXT>
<NAME>name 2 Eng</NAME>
</LANGUAGE>
<TEXT>
<LANGUAGE id="16" name="Swe">
<TEXT>text 2 Eng</TEXT>
<NAME>name 2 Eng</NAME>
</LANGUAGE>
</TEXT>
<IMAGE>
<LANGUAGE id="17" name="Eng">
<VERSION>
<FILE>file 1 Eng</FILE>
<NAME>version name 1 Eng</NAME>
<EXTENSION>text 1 Eng</EXTENSION>
</VERSION>
</LANGUAGE>
</IMAGE>
<ARTICLE>
<LANGUAGE id="17" name="Eng">
<NAME>article 1 Eng</NAME>
</LANGUAGE>
</ARTICLE>
<ARTICLE>
<ATTRIBUTE>
<LANGUAGE id="17" name="Eng">
<NAME>attrib 1 Eng</NAME>
</LANGUAGE>
</ATTRIBUTE>
</ARTICLE>
<PAGE>
<LANGUAGE id="17" name="Eng">
<NAME>name 2 Eng</NAME>
</LANGUAGE>
</PAGE>
</PAGE>
<PAGE id="2">
<LANGUAGE id="17" name="Eng">
<NAME>name 1 Eng (page 2)</NAME>
</LANGUAGE>
<LANGUAGE id="16" name="Swe">
<NAME>name 1 swe (page 2)</NAME>
</LANGUAGE>
<LANGUAGE id="17" name="Eng">
<TEXT>text 2 Eng (page 2)</TEXT>
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
<TEXT>
<LANGUAGE id="16" name="Swe">
<TEXT>text 2 Eng (page 2)</TEXT>
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
</TEXT>
<IMAGE>
<LANGUAGE id="17" name="Eng">
<VERSION>
<FILE>file 1 Eng (page 2)</FILE>
<NAME>version name 1 Eng (page 2)</NAME>
<EXTENSION>text 1 Eng (page 2)</EXTENSION>
</VERSION>
</LANGUAGE>
</IMAGE>
<ARTICLE>
<LANGUAGE id="17" name="Eng">
<NAME>article 1 Eng (page 2)</NAME>
</LANGUAGE>
</ARTICLE>
<ARTICLE>
<ATTRIBUTE>
<LANGUAGE id="17" name="Eng">
<NAME>attrib 1 Eng (page 2)</NAME>
</LANGUAGE>
</ATTRIBUTE>
</ARTICLE>
<PAGE>
<LANGUAGE id="17" name="Eng">
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
</PAGE>
</PAGE>
</PAGE>
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM"
objXML.async = False ' optional
objXML.validateOnParse = False ' optional
objXML.Load(Server.MapPath("test_2.xml"
)
Set objLst = objXML.getElementsByTagName("PAGE"
i = 0
Dim iCounter
iCounter = 1
Dim lang_nodes, t_node
For each objNode in objLst
Response.Write("Page nr "
& iCounter & ("<br><br>"
'page information section
Set lang_nodes = objNode.SelectNodes("LANGUAGE"
For Each t_node in lang_nodes
If t_node.getAttribute("id"
= "17" Then
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
.Text & "<br>"
End If
Next
Set lang_nodes = Nothing
'now do the text section
Set lang_nodes = objNode.SelectNodes("TEXT/LANGUAGE"
For Each t_node in lang_nodes
If t_node.getAttribute("id"
= "17" Then
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
.Text & "<br>"
Response.Write t_node.SelectSingleNode("TEXT"
.Text & "<br>"
End If
Next
Dim img_nodes, img_node
Set img_nodes = objNode.SelectNodes("IMAGE/LANGUAGE"
For Each img_node in img_nodes
'Check for the LANGUAGE id = 17
If img_node.getAttribute("id"
= "17" Then
'get the VERSION node from inside the IMAGE/LANGUAGE node
Set t_node = img_node.SelectSingleNode("VERSION"
'get the values of whatever you need here from t_node, for example
Dim strImage
strImage = (t_node.SelectSingleNode("FILE"
.Text)
strImage = strImage & (t_node.SelectSingleNode("NAME"
.Text)
strImage = strImage & "." & (t_node.SelectSingleNode("EXTENSION"
.Text)
Response.Write(strImage) & "<br>"
'Response.Write " Image Extension: " & t_node.SelectSingleNode("EXTENSION"
.Text & "<br>"
'or for the name attribute
Response.Write " Name Attr: " & t_node.getAttribute("name"
& "<br>"
End If
Next
'now do the article section
Set article_nodes = objNode.SelectNodes("ARTICLE/LANGUAGE"
For Each t_node in article_nodes
If t_node.getAttribute("id"
= "17" Then
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
.Text & "<br>"
End If
Next
'now do the article section
Set attrib_nodes = objNode.SelectNodes("ARTICLE/ATTRIBUTE/LANGUAGE"
For Each t_node in attrib_nodes
If t_node.getAttribute("id"
= "17" Then
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
.Text & "<br>"
End If
Next
iCounter = iCounter + 1
Next
%>
Regards
M
I wonder if someone could see what I'm doing wrong here. Basically I have a xml file that consits of information about 2 pages. I have an asp page that fetch that information for me based on some criterias. But the tree structure is giving me problems. The xml file only consits of 2 pages, I would like the information to be written out like this...
Page nr 1
Some information about page 1 bla bla bla... and so on
Page nr 2
Some information about page 2 bla bla bla... and so on
But if you try the code below you will see that it doesnt quite come out that way. So I could use some help with this one.
<?xml version="1.0"?>
<PAGE>
<PAGE id="1">
<LANGUAGE id="17" name="Eng">
<NAME>name 1 Eng</NAME>
</LANGUAGE>
<LANGUAGE id="16" name="Swe">
<NAME>name 1 swe</NAME>
</LANGUAGE>
<LANGUAGE id="17" name="Eng">
<TEXT>text 2 Eng</TEXT>
<NAME>name 2 Eng</NAME>
</LANGUAGE>
<TEXT>
<LANGUAGE id="16" name="Swe">
<TEXT>text 2 Eng</TEXT>
<NAME>name 2 Eng</NAME>
</LANGUAGE>
</TEXT>
<IMAGE>
<LANGUAGE id="17" name="Eng">
<VERSION>
<FILE>file 1 Eng</FILE>
<NAME>version name 1 Eng</NAME>
<EXTENSION>text 1 Eng</EXTENSION>
</VERSION>
</LANGUAGE>
</IMAGE>
<ARTICLE>
<LANGUAGE id="17" name="Eng">
<NAME>article 1 Eng</NAME>
</LANGUAGE>
</ARTICLE>
<ARTICLE>
<ATTRIBUTE>
<LANGUAGE id="17" name="Eng">
<NAME>attrib 1 Eng</NAME>
</LANGUAGE>
</ATTRIBUTE>
</ARTICLE>
<PAGE>
<LANGUAGE id="17" name="Eng">
<NAME>name 2 Eng</NAME>
</LANGUAGE>
</PAGE>
</PAGE>
<PAGE id="2">
<LANGUAGE id="17" name="Eng">
<NAME>name 1 Eng (page 2)</NAME>
</LANGUAGE>
<LANGUAGE id="16" name="Swe">
<NAME>name 1 swe (page 2)</NAME>
</LANGUAGE>
<LANGUAGE id="17" name="Eng">
<TEXT>text 2 Eng (page 2)</TEXT>
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
<TEXT>
<LANGUAGE id="16" name="Swe">
<TEXT>text 2 Eng (page 2)</TEXT>
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
</TEXT>
<IMAGE>
<LANGUAGE id="17" name="Eng">
<VERSION>
<FILE>file 1 Eng (page 2)</FILE>
<NAME>version name 1 Eng (page 2)</NAME>
<EXTENSION>text 1 Eng (page 2)</EXTENSION>
</VERSION>
</LANGUAGE>
</IMAGE>
<ARTICLE>
<LANGUAGE id="17" name="Eng">
<NAME>article 1 Eng (page 2)</NAME>
</LANGUAGE>
</ARTICLE>
<ARTICLE>
<ATTRIBUTE>
<LANGUAGE id="17" name="Eng">
<NAME>attrib 1 Eng (page 2)</NAME>
</LANGUAGE>
</ATTRIBUTE>
</ARTICLE>
<PAGE>
<LANGUAGE id="17" name="Eng">
<NAME>name 2 Eng (page 2)</NAME>
</LANGUAGE>
</PAGE>
</PAGE>
</PAGE>
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM"
objXML.async = False ' optional
objXML.validateOnParse = False ' optional
objXML.Load(Server.MapPath("test_2.xml"
Set objLst = objXML.getElementsByTagName("PAGE"
i = 0
Dim iCounter
iCounter = 1
Dim lang_nodes, t_node
For each objNode in objLst
Response.Write("Page nr "
'page information section
Set lang_nodes = objNode.SelectNodes("LANGUAGE"
For Each t_node in lang_nodes
If t_node.getAttribute("id"
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
End If
Next
Set lang_nodes = Nothing
'now do the text section
Set lang_nodes = objNode.SelectNodes("TEXT/LANGUAGE"
For Each t_node in lang_nodes
If t_node.getAttribute("id"
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
Response.Write t_node.SelectSingleNode("TEXT"
End If
Next
Dim img_nodes, img_node
Set img_nodes = objNode.SelectNodes("IMAGE/LANGUAGE"
For Each img_node in img_nodes
'Check for the LANGUAGE id = 17
If img_node.getAttribute("id"
'get the VERSION node from inside the IMAGE/LANGUAGE node
Set t_node = img_node.SelectSingleNode("VERSION"
'get the values of whatever you need here from t_node, for example
Dim strImage
strImage = (t_node.SelectSingleNode("FILE"
strImage = strImage & (t_node.SelectSingleNode("NAME"
strImage = strImage & "." & (t_node.SelectSingleNode("EXTENSION"
Response.Write(strImage) & "<br>"
'Response.Write " Image Extension: " & t_node.SelectSingleNode("EXTENSION"
'or for the name attribute
Response.Write " Name Attr: " & t_node.getAttribute("name"
End If
Next
'now do the article section
Set article_nodes = objNode.SelectNodes("ARTICLE/LANGUAGE"
For Each t_node in article_nodes
If t_node.getAttribute("id"
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
End If
Next
'now do the article section
Set attrib_nodes = objNode.SelectNodes("ARTICLE/ATTRIBUTE/LANGUAGE"
For Each t_node in attrib_nodes
If t_node.getAttribute("id"
Response.Write "Name: " & t_node.SelectSingleNode("NAME"
End If
Next
iCounter = iCounter + 1
Next
%>
Regards
M