XML Editor gesucht
herky 15.06.2012 - 10:43 1231 9
herky
natürlicher fressfeind
|
hi leute,
ich suche einen XML editor mit dem ich:
* große XML datein bearbeiten (bis 20mb) * ungewollte nodes / tags entfernen (zB alle vorkommen <unnoetig> und seine sub tags entfernen)
hab bislang leider kaum was brauchbares gefunden
greets,
herky
|
quilty
Ich schau nur
|
also jeden den ich kenne und zu dem thema gefragt wird spuckt reflexartig "altova xmlspy" aus. ist noch immer die referenz wenn es um xml bearbeitung/verarbeitung geht.
|
herky
natürlicher fressfeind
|
hm ... 399€ ? ... seriously ^^
danke für die super schnelle antwort, aber kennt eventuell jemand etwas als donate-ware oder wenn unterhalb von 100€?
greets,
herky
|
mat
AdministratorLegends never die
|
Altova XMLSpy ist meiner Meinung nach die ausgefeilteste Lösung. Gibt übrigens auch jemanden hier im Forum, der für Altova tätig ist/war. Kostenlose Alternative ist "Serna Free": http://www.syntext.com/products/serna-free/
|
herky
natürlicher fressfeind
|
thx für die vorschläge - wenn mir noch wer sagen kann ob und wie ich mit altova ungewollte nodes entfernen kann? ich find dazu einfach nichts brauchbares :-(
greets
|
mat
AdministratorLegends never die
|
XMLSpy hat eine sehr ausführliche Anleitung: Removing nodes
A node can be removed if its removal does not render the document invalid. Removing a node causes a node and all its contents to be deleted. A node can be removed using the Remove command in the context menu. When the Remove command is highlighted, a submenu pops up which contains all nodes that may be removed, starting from the selected node and going up to the document's top-level node. To select a node for removal, the cursor can be placed within the node, or the node (or part of it) can be highlighted. In the Elements entry helper, nodes that can be removed are indicated with the [x-] icon. A removable node can also be removed by selecting it and pressing the Delete key. In the NanonullOrg.xml document, experiment with removing a few nodes using the mechanisms described. You can undo your changes with Ctrl+Z. Link: manual.altova.com
|
herky
natürlicher fressfeind
|
danke mat - leider ist das nicht was ich suche - ein vorkommen eines nodes zu löschen ist echt kein problem. ich möchte aber alle spezifischen in einem XML dokument vorkommenden nodes löschen können. bsp.: alle size nodes löschen in: <imgs>
<size />
<file>
<id />
<size >
blabla
</size>
</file>
<file>
<id />
<size >
blabla
</size>
</file>
<file>
<id />
<size >
blabla
</size>
</file>
</imgs>
zu: <imgs>
<file>
<id />
</file>
<file>
<id />
</file>
<file>
<id />
</file>
</imgs>
aber eben in einem 20 mb großen file. das manuell OHNE fehler zu machen ist nicht wirklich gut möglich. greets
|
sts
|
Diese Anforderung sollte sich ja auch relativ einfach umsetzen alssen, denke da an eine C# Windows Forms Application... melde dich bei mir falls Du noch keine Lösung gefunden hast
|
-=Willi=-
The Emperor protects
|
Hier eine Zeile für Bash: sed -e 's/<size\s*>.*<\/size\s*>//' -e '/<size\s*>/,/<\/size\s*>/ s/.*//' -e '/^\s*$/d' <in.xml >out.xml
Wahrscheinlich umständlicher gelöst als es möglich wär aber es gibt auch keine Gewähr drauf . Ich habs zumindest mit deinem Beispiel oben getestet und auch mit einzeiligen Tags (<size>bla</size> .
|
that
Hoffnungsloser Optimist
|
Sowas macht man am besten mit einem XSLT-Script: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="size"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Das erste Template macht aus "size"-Elementen gar nichts, und das zweite kopiert alle Attribute und Elemente 1:1 weiter. XSLT-Engines, die so ein Script ausführen können, gibts inzwischen wirklich viele - eine davon u.a. im XMLSpy, eine in .NET, eine im normalen Windows (erreichbar über COM, z.B. über ein kleines Scripting-Host-Script), in libxslt, im Browser, etc.
|