Ich muss ein Element zu einem vorhandenen XML-Dokument hinzufügen, das einen Namespace verwendet, der nicht im Original vorhanden ist. Wie mache ich das?Hinzufügen von XML-Namespace zu vorhandenem Dokument in Ruby
Idealerweise würde ich gerne REXML für die Portabilität verwenden, aber jede gängige XML-Bibliothek wäre in Ordnung. Eine ideale Lösung wäre, wenn es um Namespace-Kollisionen geht.
Ich habe ein XML-Dokument, das wie folgt aussieht:
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service>
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<URI>http://provider.openid.example/server/2.0</URI>
</Service>
</XRD>
</xrds:XRDS>
und fügen:
<Service
xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0">
<Type>http://openid.net/signon/1.0</Type>
<URI>http://provider.openid.example/server/1.0</URI>
<openid:Delegate>http://example.openid.example</openid:Delegate>
</Service>
etwas nachgebend entspricht:
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0">
<XRD>
<Service>
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<URI>http://provider.openid.example/server/2.0</URI>
</Service>
<Service>
<Type>http://openid.net/signon/1.0</Type>
<URI>http://provider.openid.example/server/1.0</URI>
<openid:Delegate>http://example.openid.example</openid:Delegate>
</Service>
</XRD>
</xrds:XRDS>