Avatar billede madseksperten Nybegynder
25. marts 2014 - 13:25 Der er 4 kommentarer og
1 løsning

namesspace go attributer med foo, bar

Hejsa

Jeg har denne stump kode:

<a:foo qux="A" xmlns:a="B" xmlns:b="C">
  <b:bar a:quux="D" xmlns="E"/>
  <xmlns xmlns:a="F" xmlns="G">
    <baz a:corge="H" xmlns:baz="I" xmlns=""/>
  </xmlns>
</a:foo>

Mit spørgsmål går på hvilke namespaces tilhører foo, bar og bas? og hvilke namespaes attributer tilhører qux, quux og forge?

Jeg har en fornemmelse af at foo tilhører a og bar tilhører b?

mvh Mads
Avatar billede arne_v Ekspert
25. marts 2014 - 14:34 #1

import java.io.IOException;
import java.io.StringReader;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;

public class CheckNS {
    private static void dump(String xmlstr) throws ParserConfigurationException, SAXException, IOException {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setNamespaceAware(true);
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        xr.setContentHandler(new DumpParser());
        xr.parse(new InputSource(new StringReader(xmlstr)));
    }
    public static void main(String[] args) throws Exception {
        String xml = "<a:foo qux=\"A\" xmlns:a=\"B\" xmlns:b=\"C\">\r\n" +
"  <b:bar a:quux=\"D\" xmlns=\"E\"/>\r\n" +
"  <xmlns xmlns:a=\"F\" xmlns=\"G\">\r\n" +
"    <baz a:corge=\"H\" xmlns:baz=\"I\" xmlns=\"\"/>\r\n" +
"  </xmlns>" +
"</a:foo>\r\n";
        System.out.print(xml);
        dump(xml);
    }
}

class DumpParser extends DefaultHandler {
    public void startElement(String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException {
        System.out.printf("Element: ns=%s name=%s\n", namespaceURI, localName);
        for(int i = 0; i < atts.getLength(); i++) {
            System.out.printf("  Attribute: ns=%s name=%s\n", atts.getURI(i), atts.getLocalName(i));
        }
    }
}
Avatar billede arne_v Ekspert
25. marts 2014 - 21:00 #2
Og vil du laese fra fil er det naturligvis FileReader fremfor StringReader.
Avatar billede madseksperten Nybegynder
06. april 2014 - 10:07 #3
Hejsa Arne

Så har jeg været til eksamen, så jeg håber det er gået. Men tak for hjælpen og smider du et svar?

mvh Mads
Avatar billede madseksperten Nybegynder
06. april 2014 - 10:09 #4
Iøvrigt Arne ligger du også et svar her : :-)

http://www.eksperten.dk/spm/992347
Avatar billede arne_v Ekspert
06. april 2014 - 21:54 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester