/ / Nokogiri usuwając przestrzenie nazw atrybutów podczas analizowania - ruby, xml, nokogiri

Rozkładanie przestrzeni atrybutów Nokogiri podczas parsowania - ruby, xml, nokogiri

Mam to:

<style:style style:name="MYBOLD" style:family="text" style:parent-style-name="Standard">
<style:text-properties style:font-name="Arial" style:font-name-complex="Arial" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>

Zwróć uwagę, jak atrybuty mają przestrzeń nazw.

Kiedy parsuję to tak:

Nokogiri::XML.fragment(xmltext)

Wygląda na to, że utracił przestrzenie nazw zarówno dla tagów, jak i atrybutów! Czy jest jakiś sposób, aby je zachować?

Odpowiedzi:

3 dla odpowiedzi № 1

Nokogiri jest ślepy na przestrzenie nazw, z wyjątkiem (1)w węźle głównym i (2) każdy, który sam zarejestrujesz. Ponieważ fragment z definicji nie ma węzła głównego, musisz sam podać informacje o przestrzeni nazw.

Zauważyłem, że konstruktor DocumentFragment ma opcjonalny węzeł kontekstowy, z którego możezbierać informacje o przestrzeni nazw. Ponieważ w komentarzach zaznaczyłeś, że masz dokument, w którym wstawisz fragment, o ile przestrzenie nazw są odpowiednio zarejestrowane w tym dokumencie, prawdopodobnie możesz go użyć do informacji kontekstowych.