Ich möchte dieses Stück xml konvertieren:Remove Namespacepräfix mit sed
<v1:table>
<v1:tr>
<v1:td>Apples</v1:td>
<v1:td>Bananas</v1:td>
</v1:tr>
</v1:table>
in den folgenden durch die Namespacepräfixe Entfernen (dh v1
) und die folgenden erhalten, indem mit sed:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
Ist es möglich?
EDIT: Ich möchte auch angeben, dass das XML in einer Datei gespeichert ist.
Nein, mit 'sed' ist es unmöglich:' sed' basiert auf regulären Ausdrücken und XML ist keine reguläre Sprache. Erwägen Sie die Verwendung eines echten XML-Parsers. Sie sehen möglicherweise Antworten, die Ihnen Snippets geben, die _seem_ an Ihrem spezifischen Spielzeugbeispiel funktionieren, aber es wäre sehr einfach, eine (gültige XML-) Datei zu erstellen, auf der es fehlschlägt. –
Sie möchten die Namespaces nicht entfernen. Aufhören zu versuchen. Erklären Sie, was Sie wirklich erreichen möchten (oder warum Sie glauben, dass das Entfernen der Namespaces Ihnen helfen würde). – Tomalak
Ich möchte XML in eine Java-Klasse konvertieren mit Spring Framework [XStreamMarshaller] (http://docs.spring.io/spring-framework/docs/4.2.2.BUILD-SNAPSHOT/javadoc-api/org/springframework/oxm /xstream/XStreamMarshaller.html). Um die gleichen Tags wie die Klassenfelder zu haben, möchte ich die Präfixe loswerden. Ich benutze nur bash und sed, bevor ich den Spring Batch laufe, deshalb bin ich geneigt, sed zu benutzen. – vahdet