Hi All, I will appreciate if somebody could help on how to normalize and canonicalize XML.
For example <?xml version="1.0" encoding="WINDOWS-1251"?> <ed:N1 attr="4583001999" xmlns:ed="urn:ru:ed:v2.0"> </ed:N> I need to get <n1:N1 xmlns:n1="urn:cbr-ru:ed:v2.0" attr="4583001999"></n1:N1> And for <?xml version="1.0" encoding="WINDOWS-1251"?> <N1 attr="4583001999" xmlns="urn:ru:ed:v2.0"> <N2 attr="value"></N2> </N1> I need <n1:N1 xmlns:n1="urn:ru:ed:v2.0"> attr="4583001999"<n1:N2 attr="value"></n1:N2></n1:N1> In other words I need to remove whitespaces and rewrite namespace prefixes I use string src; xmlChar * canon; xmlDocPtr xDoc = xmlReadMemory(src.data(), src.size(), nullptr, nullptr, XML_PARSE_NOBLANKS); int bytes = xmlC14NDocDumpMemory(xDoc, nullptr, 0, nullptr, 0, & canon); It removes whitespaces, need help with namespace prefix rewrite. Thank you in advance. On Sun, Jan 28, 2018 at 12:41 AM, Mikhail Goloborodko < mgoloboro...@gmail.com> wrote: > Hi, > > I need help on how to normalize and canonicalize XML. > For example > <?xml version="1.0" encoding="WINDOWS-1251"?> > <ed:N1 attr="4583001999" xmlns:ed="urn:ru:ed:v2.0"> > </ed:N> > > I need to get > > <n1:N1 xmlns:n1="urn:cbr-ru:ed:v2.0" attr="4583001999"></n1:N1> > > And for > > <?xml version="1.0" encoding="WINDOWS-1251"?> > <N1 attr="4583001999" xmlns="urn:ru:ed:v2.0"> > <N2 attr="value"></N2> > </N1> > > I need > > <n1:N1 attr="4583001999" xmlns="urn:ru:ed:v2.0"><n1:N2 > attr="value"></n1:N2></n1:N1> > > In other words I need to remove whitespaces and rewrite namespace prefixes > I use > string src; > xmlChar * canon; > xmlDocPtr xDoc = xmlReadMemory(src.data(), src.size(), nullptr, nullptr, > XML_PARSE_NOBLANKS); > int bytes = xmlC14NDocDumpMemory(xDoc, nullptr, 0, nullptr, 0, & canon); > > It clearly removes whitespace, need help with namespace prefix rewrite. > > Thank you in advance. > > Mikhail > >
_______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org https://mail.gnome.org/mailman/listinfo/xml