---
title: "appendChild"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/5238-appendchild"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "mrblonde"
published: "2001-11-06T12:26:00.000Z"
updated: "2001-11-22T15:31:00.000Z"
replies: 3
views: 555
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/xml/5238-appendchild"
---

# appendChild

## #1 — mrblonde, 2001-11-06T12:26Z

Har ett nytt problem.
Jag har ett xml meddelande som ser ut så här:

```
<MESSAGE>
	<PARAMS>
		<TestNodes>
			<CloneNode>	
				<Attribute1 Value="a1"/>
				<Attribute2 Value="a2"/>
			</CloneNode>
		</TestNodes>
	</PARAMS>
</MESSAGE>
```

Nu måste jag kopiera \<CloneNode\> och lägga till lika många som jag har rader i ett recordset. Detta för att sedan stoppain värdena i recordsetet i noderna.

Jag tänkte göra det så här:

```
Dim XMLDOM As New MSXML2.DOMDocument30
's innehåller xml:en ovan
XMLDOM.loadXML s

Dim obj As Object
   Dim node As MSXML2.DOMDocument30
  Set obj = CreateObject("IABNR.XMLiPack")
'rsAppend är mitt recordset med tre rader. 
 Set node = obj.CloneAndBindNodes(XMLDOM.getElementsByTagName("TestNodes"), rsAppend)
```

Här kommer funktionen som jag sänder in det i:

```
Public Function CloneAndBindNodes(ByVal prm2 As MSXML2.IXMLDOMNodeList, rsParams As Adodb.Recordset) As MSXML2.IXMLDOMNode

   On Error GoTo errorHandler
   Dim prm As MSXML2.IXMLDOMNode
   Set prm = prm2.Item(0)
      
   
   'clone the node that shall we will have multiple of
   Dim clone As MSXML2.IXMLDOMNode
   Set clone = prm.childNodes.Item(0).cloneNode(True)
   
   'how many copies of the clone do we need?
   Dim numberOfClones As Long
   numberOfClones = rsParams.RecordCount
      
   'add the clones
   Dim i As Long
   For i = 1 To numberOfClones -1
      prm.appendChild clone
   Next
   
   Dim nde As MSXML2.IXMLDOMNode
   Dim att As MSXML2.IXMLDOMNode
   
   For Each nde In prm.childNodes
      For Each att In nde
         att.Attributes.getNamedItem("Value").nodeValue = rsParams(att.nodeName)
      Next
      rsParams.MoveNext
   Next
   
   
   CtxSetComplete
   Exit Function

errorHandler:
   HandleError g_modName, "CloneAndBindNodes"
End Function
```

Det som inte funkar är att när jag gör "prm.appendChild clone" så lägger den bara till en (1) clone. Jag ser hur den går igenom for loopen 2 gånger men det lägger bara till en enda.

Dvs om jag skriver ut xmlen blir det:

```
<MESSAGE>
	<PARAMS>
		<TestNodes>
			<CloneNode>	
				<Attribute1 Value="a1"/>
				<Attribute2 Value="a2"/>
			</CloneNode>
			<CloneNode>	
				<Attribute1 Value="a1"/>
				<Attribute2 Value="a2"/>
			</CloneNode>
		</TestNodes>
	</PARAMS>
</MESSAGE>
```

Varför?

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

## #2 — mrblonde, 2001-11-06T13:49Z

för den intresserade kan jag meddelan att jag löst det.

den accepterade inte att jag försökte lägga till samma clone flera ånger, men om jag flyttade ner 

Set clone = prm.childNodes.Item(0).cloneNode(True)

Så att den kom in i for next loopen gick det bra.
dvs:

```
For i = 1 To numberOfClones -1
  Set clone = prm.childNodes.Item(0).cloneNode(True)
  prm.appendChild clone
Next
```

Hepp!

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

## #3 — cogoii, 2001-11-22T15:25Z

Jag undrar hur jag kan skicka med ett &nbsp; via XSL till min HTML sida?

Anledningen är för att jag vill ha med ett mellanrum i mina \<TD\> taggar så Netscape visar min tagg med rätt bakgrundsfärg.

Jag vill alltså INTE ha någon HEX / ASCII kod för blanksteg... utan veta hur jag kan skicka med ren HTML via XSL.

Tack,
a

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

## #4 — @nders, 2001-11-22T15:31Z

Hej och välkommen hit! :)

Jag brukar göra så här: lite omständigt, men...

```
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
```

Du borde också kunna lösa det med CDATA.

Mvh,

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

---

Tråden på webben: https://www.webforum.nu/amne/xml/5238-appendchild
