Avatar billede nazty Nybegynder
28. april 2008 - 22:43 Der er 4 kommentarer

Slette node i XML film

Hi
Hvordan sletter jeg en node i en xml fil?
Avatar billede bauerdata Nybegynder
21. maj 2008 - 16:31 #1
<%@LANGUAGE=Python%>
<%
# Licence GPL
# se http://support.microsoft.com/kb/276494 der er beskrevet hvordan du
# opsætter din asp server til at bruge python
import sys

from xml.dom.ext.reader.Sax2 import FromXmlStream
from xml.dom.ext            import PrettyPrint

# get DOM object
xmlFile = open("bin.xml")
doc = FromXmlStream( xmlFile )

# remove unwanted nodes by traversing Node tree

for node1 in doc.childNodes:
  for node2 in node1.childNodes:
    node2.normalize()
    node3 = node2.firstChild
    while node3 is not None:
      next = node3.nextSibling
      name = node3.nodeName
      if name in ("contents", "extension", "userID", "groupID"):
        # remove unwanted nodes here via the parent
        node2.removeChild(node3)
      node3 = next
PrettyPrint( doc, open("changed.xml","w") )

%>
Avatar billede arne_v Ekspert
22. maj 2008 - 04:19 #2
I ASP/VBS:

<%@ Language="VBScript" %>
<%
Response.ContentType = "text/xml"
Set doc = Server.CreateObject("Microsoft.XMLDOM")
doc.Async = False
doc.Load(Server.MapPath("test.xml"))
For Each n in doc.SelectNodes("//all/one[@tobedeleted='true']")
    n.ParentNode.RemoveChild(n)
Next
doc.Save(Response)
Set doc = Nothing
%>

og hvis man af en eller anden grund vil lave det i ASP/Python:

<%@ Language="Python" %>
<%
Response.ContentType = "text/xml"
from xml.dom.ext.reader import Sax2
from xml.dom.ext import Print
from xml import xpath
reader = Sax2.Reader()
doc = reader.fromStream(Server.MapPath("test.xml"))
for n in xpath.Evaluate("//all/one[@tobedeleted='true']", doc.documentElement):
    n.parentNode.removeChild(n)
Print(doc, Response)
%>

Begge testet med:

<all>
    <one tobedeleted="true">A</one>
    <one tobedeleted="false">B</one>
    <one tobedeleted="true">C</one>
    <one tobedeleted="false">D</one>
</all>
Avatar billede arne_v Ekspert
09. juni 2008 - 04:39 #3
nazty ?
Avatar billede arne_v Ekspert
30. august 2008 - 01:40 #4
?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester