---
title: "Läsa del ur xml med asp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/156527-läsa-del-ur-xml-med-asp"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Melitta"
published: "2007-01-29T15:04:32.000Z"
updated: "2007-01-29T20:30:06.000Z"
replies: 13
views: 667
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/156527-läsa-del-ur-xml-med-asp"
---

# Läsa del ur xml med asp

## #1 — Melitta, 2007-01-29T15:04Z

Ok, så här ligger det till. Jag har en xml fil med alla mina filmer i, jag vill nu lista lista visa av värdena per dvd med asp, jag har redan åstakommit det om ni kollar på <http://www.hjd.se/film.asp>
Problemet kommer när jag försöker få ut actors. Får bara inte till det..
Tips på bättre sätt att lista ut det än det jag gör uppskattas..

min kod just nu: (första xml försöket btw)

```
<%
Response.Buffer = True

Dim xml
	Set xml = Server.CreateObject("Microsoft.XMLDOM")
	xml.async = False
	xml.load (Server.MapPath("../collection.xml"))

	if request("id") <> "" then
	set x = xml.documentElement.childNodes(request("id")-1)	
	
	set strTitle = x.getElementsByTagName("Title")
	set strPm = x.getElementsByTagName("Overview")
			
	set arrGenre = x.getElementsByTagName("Genre")
	set strTime = x.getElementsByTagName("RunningTime")
	set strStudios = x.getElementsByTagName("Studio")

	strImage = x.childNodes(0).text
	
	genreList = ""
	for each item in arrgenre
		genreList = genreList& item.text & ", "
	next
	
		%>
		<h1><%=strTitle.item(0).text%></h1>
		<div class="information"><strong>Kategori:</strong> <%if genreList <> "" then response.write left(genreList,len(genreList)-2) else response.write "N/A"%> | <strong>Speltid:</strong> <%=strTime.item(1).text%> min.</div>
		<p><img id="cover" src="http://www.intervocative.com/cgi-bin/data/myprofiler/images/<%=strImage%>f.jpg" style="float:left;margin-right:10px;border:1px solid #aaa;" alt="<%=strTitle.item(0).text%>" />
		<%if (strPm.length-1 = 1 ) then _
				response.write strPm.item(1).text else _
					response.write "N/A"
		%></p>
		<p style="clear:left;"><strong>Director:</strong> <br />
		  <strong>Skådisar:</strong><%

			
			response.write actorsList

		  %><br />
	      <strong>Studio:</strong> <%
		  if not strStudios.length - 1 = 0 then
		  for i = 0 to strStudios.length - 1
			
			response.write strStudios.item(i).text
			if not i = strStudios.length - 1 then response.write ", "
		  next
		  else 
		  response.write "N/A"
		  end if
		  %></p>
	<%
	else
	
		i = 1
		response.write "<ul>"
		for each x in xml.documentElement.childNodes
		  response.write "<li><a href=""?id=" & i & """>" & x.childNodes(4).text & "</a></li>"
		  i = i + 1
		next
		response.write "</ul>"
	end if
	
	
	Set xml = Nothing
%>
```

Den delen av filen som jag inte kan klura ut hur jag ska hämta:

```
<collection>
<dvd>

' Massor av andra "fält" här, se hela xml filen längs ned i denna post. 

<Actors>
    <Actor>
      <FirstName>Lindsay</FirstName>
      <LastName>Lohan</LastName>
      <Role>Mary Elizabeth Cep/Lola</Role>
    </Actor>
    <Actor>
      <FirstName>Adam</FirstName>
      <LastName>Garcia</LastName>
      <Role>Stu</Role>
    </Actor>
</Actors>

' Massor av andra "fält" här, se hela xml filen längs ned i denna post. 

</dvd>
</collection>
```

Xml filen som den är uppbyggd nedan:
<http://www.hjd.se/collection.xml> (ca 2mb)

Lessen om jag postat i fel del, ber då moderator att flytta inlägget till rätt forum.

Permalänk: https://www.webforum.nu/p/156527

## #2 — Peter S, 2007-01-29T15:17Z

```
set actors = x.selectNodes("Actors/Actor")
for each actor in actors
  set fn = actor.selectSingleNode("FirstName")
  set ln = actor.selectSingleNode("LastName")
  set role = actor.selectSingleNode("Role")
  'use fn.text, ln.text, role.text
next
```

Permalänk: https://www.webforum.nu/p/1927586

## #3 — Melitta, 2007-01-29T16:48Z

Thats gräjt, kan man på nått sätt styra hur många roller som skrivs ut? Vill att dom 3-5 första ska skrivas ut, annars blir det så många

Permalänk: https://www.webforum.nu/p/1927627

## #4 — Peter S, 2007-01-29T17:15Z

Alla för- och efternamn men endast 3–5 roller? Då

```
set actors = x.selectNodes("Actors/Actor")
roleCounter = 1
for each actor in actors
  set fn = actor.selectSingleNode("FirstName")
  set ln = actor.selectSingleNode("LastName")
  'use fn.text, ln.text
  if roleCounter < 6 then
    set role = actor.selectSingleNode("Role")
    'use role.text
    roleCounter = roleCounter + 1
  end if
next
```

Permalänk: https://www.webforum.nu/p/1927633

## #5 — Melitta, 2007-01-29T17:23Z

Jo jag kom på det, tusen tack för hjälpen :)
Har bara en fråga kvar..
Just nu hämtar jag ju den film jag är ute efter med id som är genererat på sidan innan, kan man söka poster i xml på något annat sätt en detta?

```
set x = xml.documentElement.childNodes(request("id")-1)
```

Permalänk: https://www.webforum.nu/p/1927638

## #6 — Peter S, 2007-01-29T17:29Z

Istället för att ha ett \<ID\>-element skulle du kunna skriva \<dvd id="..."\>, och sedan söka rätt på en film enligt

```
set x = xml.documentElement.selectSingleNode("dvd[@id = '" & request("id") & "']")
```

Permalänk: https://www.webforum.nu/p/1927641

## #7 — Melitta, 2007-01-29T17:34Z

ok, problemet är väll bara att filen genereras av ett program så jag har tyvär ingen större kontroll över hur xml filen utformas tyvär. Men tack iallafall :)

Permalänk: https://www.webforum.nu/p/1927645

## #8 — Peter S, 2007-01-29T17:54Z

Då kan du testa:

```
set x = xml.documentElement.selectSingleNode("DVD/ID[text() = '" & request("id") & "']")
```

Permalänk: https://www.webforum.nu/p/1927655

## #9 — Melitta, 2007-01-29T18:22Z

Det ville sig tyvär inte, det får väll gå som det är men det hadde ju varit smidigare på annat sätt.

Permalänk: https://www.webforum.nu/p/1927662

## #10 — Peter S, 2007-01-29T18:29Z

Med ovanstående får du ut \<ID\>-noden. Lägger du på *.parentNode* hamnar du på \<DVD\>-noden.

Permalänk: https://www.webforum.nu/p/1927666

## #11 — Melitta, 2007-01-29T18:43Z

aha, det kan ju vara nått kanakse, ska testa..

Permalänk: https://www.webforum.nu/p/1927671

## #12 — Melitta, 2007-01-29T18:46Z

Guldstjärna till dig, det funkade aldeles utmärkt..
Åter igen, tack mannen :)

Permalänk: https://www.webforum.nu/p/1927672

## #13 — Melitta, 2007-01-29T18:59Z

Kan man lista fler än en nod om man t,ex skulle vilja lista alla filmer som låg i kategorin komedi?

Permalänk: https://www.webforum.nu/p/1927675

## #14 — Peter S, 2007-01-29T20:30Z

För att hämta fler än en nod kan *selectNodes()* användas. Metoderna tar likadana argument (XPath-uttryck):

```
set nodes = xmlDoc.documentElement.selectNodes("DVD/Genres/Genre[text() = 'Comedy']")
for i = 0 to nodes.length-1
  set node = nodes.item(i).parentNode.parentNode.selectSingleNode("Title")
  response.write node.text & "<br>"
next
```

Permalänk: https://www.webforum.nu/p/1927709

---

Tråden på webben: https://www.webforum.nu/amne/asp/156527-läsa-del-ur-xml-med-asp
