def test_returns_none_if_execute_fails(t): t.assertEqual( sxq.execute("<user>"), None) t.assertEqual( sxq.execute("<user>{string(/name)}</user>", "<name>Taro<name>"), None) pass
def test_with_xquery_conext_resolver(t): t.assertEqual( sxq.execute('<body>{doc(/root/@href)/name}</body>', "<root href='/bar.xml'/>", lambda uri: "<name>%s</name>" % uri), "<body><name>/bar.xml</name></body>") pass
import traceback import simplexquery as sxq def prompt(title): print("\n" + title) pass prompt("['execute' xquery code]") print(sxq.execute("""<user>{"Taro"}</user>""")) prompt("['execute' xquery code with context xml]") print(sxq.execute("<html><body>{string(/author/name)}</body></html>", "<author><name>Taro</name></author>")) prompt("['execute' xquery code with uri -> xml resolver callback]") print(sxq.execute('<body>{doc(/root/@href)/name}</body>', "<root href='/bar.xml'/>", lambda uri: "<name>%s</name>" % uri)) class Resolver(object): def __call__(self, uri): print(uri) return "<name>Jiro</name>" pass print(sxq.execute('doc("foo.xml")/name', resolver=Resolver())) prompt("['execute' returns None if fails by anyway]")
def test_with_xquery(t): t.assertEqual(sxq.execute("""<user>{"Taro"}</user>"""), "<user>Taro</user>") pass
def test_returns_none_if_execute_fails(t): t.assertEqual(sxq.execute("<user>"), None) t.assertEqual( sxq.execute("<user>{string(/name)}</user>", "<name>Taro<name>"), None) pass
def test_with_xquery_resolver(t): t.assertEqual( sxq.execute('doc("foo.xml")/name', resolver=t.ResolverClass()), "<name>Jiro</name>") pass
def test_with_xquery_context(t): t.assertEqual( sxq.execute("<html><body>{string(/author/name)}</body></html>", "<author><name>Taro</name></author>"), "<html><body>Taro</body></html>") pass
# -*- coding: utf-8 -*- import simplexquery as sxq tpl = """ <html> <body> <h1> { string(/author/name) } </h1> </body> </html> """ xml = """ <author> <name>\u592a\u90ce</name> </author> """ print(sxq.execute(tpl, xml)) print(sxq.execute("""<user>{"\u592a\u90ce"}</user>"""))
# -*- coding: utf-8 -*- import simplexquery as sxq tpl = u""" <html> <body> <h1> { string(/author/name) } </h1> </body> </html> """ xml = u""" <author> <name>\u592a\u90ce</name> </author> """ print(sxq.execute(tpl, xml)) print(sxq.execute(u"""<user>{"\u592a\u90ce"}</user>"""))
def test_with_xquery(t): t.assertEqual( sxq.execute("""<user>{"Taro"}</user>"""), "<user>Taro</user>") pass