SetNamedItem (MSXML): Unterschied zwischen den Versionen
Aus API-Wiki
K (Änderungen von 109.73.68.18 (Diskussion) rückgängig gemacht und letzte Version von Helge Rex wiederhergestellt) |
|||
Zeile 31: | Zeile 31: | ||
Dim objAttr As MSXML2.IXMLDOMAttribute | Dim objAttr As MSXML2.IXMLDOMAttribute | ||
− | strXml = VBA.Constants. | + | strXml = VBA.Constants.<syntaxhighlight lang="vb">NullString |
− | strXml = strXml & "<?xml version=""1.0""?>" & VBA.Constants. | + | strXml = strXml & "<?xml version=""1.0""?>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & "<bibliothek>" & VBA.Constants. | + | strXml = strXml & "<bibliothek>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & | + | strXml = strXml & <syntaxhighlight lang="vb">Tab & "<buecher>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & | + | strXml = strXml & <syntaxhighlight lang="vb">Tab & <syntaxhighlight lang="vb">Tab & "<buch name=""VB für Dummies"" />" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & | + | strXml = strXml & <syntaxhighlight lang="vb">Tab & <syntaxhighlight lang="vb">Tab & "<buch name=""Turbo Pascal für Dummies"" />" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & | + | strXml = strXml & <syntaxhighlight lang="vb">Tab & "</buecher>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
− | strXml = strXml & "</bibliothek>" & VBA.Constants. | + | strXml = strXml & "</bibliothek>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine |
Set objXml = New MSXML2.FreeThreadedDOMDocument | Set objXml = New MSXML2.FreeThreadedDOMDocument |
Version vom 5. November 2016, 22:11 Uhr
Mit setNamedItem kann einem XML-Knoten ein Attribut hinzugefügt werden.
Set Result = object.attributes.setNamedItem(newAttribute)
Parameter
object
- (erforderlich) Dokument oder Knoten, dem ein neues Attribut hinzugefügt werden soll (Datentyp DOMDocument, FreeThreadedDOMDocument oder IXMLDOMNode).
newAttribute
- (erforderlich) Attribut, welches hinzugefügt werden soll (Datentyp IXMLDOMAttribute)
Rückgabe
Result
- (optional) Verweis auf das eingefügte Attribut (Datentyp IXMLDOMAttribute).
Hinweise
Sollte der Knoten das hinzuzufügende Attribut bereits besitzen, so wird der Wert des vorhandenen Attributs mit dem neuen Wert überschrieben.
Beispiel
Dim objXml As MSXML2.FreeThreadedDOMDocument Dim strXml As String Dim objNode As MSXML2.IXMLDOMNode Dim objAttr As MSXML2.IXMLDOMAttribute strXml = VBA.Constants.<syntaxhighlight lang="vb">NullString strXml = strXml & "<?xml version=""1.0""?>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & "<bibliothek>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & <syntaxhighlight lang="vb">Tab & "<buecher>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & <syntaxhighlight lang="vb">Tab & <syntaxhighlight lang="vb">Tab & "<buch name=""VB für Dummies"" />" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & <syntaxhighlight lang="vb">Tab & <syntaxhighlight lang="vb">Tab & "<buch name=""Turbo Pascal für Dummies"" />" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & <syntaxhighlight lang="vb">Tab & "</buecher>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine strXml = strXml & "</bibliothek>" & VBA.Constants.<syntaxhighlight lang="vb">NewLine Set objXml = New MSXML2.FreeThreadedDOMDocument With objXml .async = False .validateOnParse = True If .loadXML(strXml) Then ' Knoten auswählen, der ein neues Attribut erhalten soll Set objNode = .selectSingleNode("/bibliothek/buecher/buch[@name='VB für Dummies']") ' Neues Attribut erzeugen Set objAttr = .createAttribute("bewertung") objAttr.nodeValue = "sehr gut" ' Attribut einfügen Call objNode.Attributes.setNamedItem(objAttr) ' Geändertes XML-Dokument anzeigen Debug.Print .xml Else Debug.Print "[Fehler] " & .parseError.reason End If End With Set objAttr = Nothing Set objNode = Nothing Set objXml = Nothing