def testReadStationXML(self): from pyrocko.io import stationxml # noqa fpath = common.test_data_file('test1.stationxml') sx = guts.load_xml(filename=fpath) s = sx.dump_xml(ns_ignore=True) sx2 = guts.load_xml(string=s) assert sx.dump_xml() == sx2.dump_xml()
def testXMLNamespaces(self): ns1 = 'http://www.w3.org/TR/html4/' ns2 = 'https://www.w3schools.com/furniture' class Row(Object): xmlns = ns1 cells = List.T(String.T(xmltagname='td')) class Table1(Object): xmlns = ns1 rows = List.T(Row.T(xmltagname='tr')) class Table2(Object): xmlns = ns2 name = String.T() width = Int.T() length = Int.T() class Root(Object): xmltagname = 'root' tables1 = List.T(Table1.T(xmltagname='table')) tables2 = List.T(Table2.T(xmltagname='table')) doc = ''' <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="https://www.w3schools.com/furniture"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> ''' o = load_xml(string=doc) s = o.dump_xml() o2 = load_xml(string=s) del o2 assert isinstance(o.tables1[0], Table1) assert isinstance(o.tables2[0], Table2)
def testXMLNamespaces2(self): ns1 = 'http://www.w3.org/TR/html4/' class Row(Object): xmlns = ns1 cells = List.T(String.T(xmltagname='td')) class Table1(Object): xmlns = ns1 rows = List.T(Row.T(xmltagname='tr')) class Root(Object): xmltagname = 'root' tables1 = List.T(Table1.T(xmltagname='table')) doc = ''' <root xmlns:h="http://www.w3.org/TR/html4/"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> </root> ''' o = load_xml(string=doc) assert isinstance(o.tables1[0], Table1) s = o.dump_xml() o2 = load_xml(string=s) assert isinstance(o2.tables1[0], Table1) s2 = o2.dump_xml(ns_ignore=True) o3 = load_xml(string=s2, ns_hints=['', 'http://www.w3.org/TR/html4/']) assert isinstance(o3.tables1[0], Table1)
def testReadQuakeML(self): fpath = common.test_data_file('test.quakeml') qml = quakeml.QuakeML.load_xml(filename=fpath) events = qml.get_pyrocko_events() assert len(events) == 1 e = events[0] assert e.lon == -116.9945 assert e.lat == 33.986 assert e.depth == 17300 assert e.time == util.stt("1999-04-02 17:05:10.500") fpath = common.test_data_file('example-catalog.xml') qml = quakeml.QuakeML.load_xml(filename=fpath) events = qml.get_pyrocko_events() assert len(events) == 2 assert events[0].moment_tensor is not None s = qml.dump_xml(ns_ignore=True) qml2 = quakeml.QuakeML.load_xml(string=s) qml3 = guts.load_xml(string=s) assert qml2.dump_xml() == qml3.dump_xml()
def load_xml(*args, **kwargs): wadl = guts.load_xml(*args, **kwargs) if not isinstance(wadl, Application): FileLoadError('Not a WADL file.') return wadl