Я решил эту проблему, добавив: Ddss.legacy.timezone.mode = true для обеих конфигураций:
... \ wso2ei-6.3.0 \ bin \ integrator.bat
... \ wso2ei-6.3.0 \ yajsw-stable-11.11 \ conf \ wrapper.conf
Ранее я забыл добавить эту запись в wrapper.conf, поскольку я запускаю WSO2 в качестве службы Windows.
libxml2 имеет много преимуществ:
Оборотные стороны включают:
, Если Вы делаете выбор простого контура, палку с ElementTree (который включен в Python 2.5). Если Вы нуждаетесь в полном соответствии спецификации или необработанной скорости и можете справиться с распределением собственного кода, пойдите с libxml2.
Образец Использования libxml2 XPath
<час>import libxml2
doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//*")
if len(res) != 2:
print "xpath query: wrong node set size"
sys.exit(1)
if res[0].name != "doc" or res[1].name != "foo":
print "xpath query: wrong node set value"
sys.exit(1)
doc.freeDoc()
ctxt.xpathFreeContext()
Образец Использования ElementTree XPath
<час>from elementtree.ElementTree import ElementTree
mydoc = ElementTree(file='tst.xml')
for e in mydoc.findall('/foo/bar'):
print e.get('title').text
<час> PyXML работает хорошо.
Вы не сказали, какую платформу Вы используете, однако если Вы находитесь на Ubuntu, можно получить его с sudo apt-get install python-xml
. Я уверен, что другие дистрибутивы Linux имеют его также.
, Если Вы находитесь на Mac, xpath уже установлен, но не сразу доступный. Можно установить PY_USE_XMLPLUS
в среде или сделать это Python путь перед импортом xml.xpath:
if sys.platform.startswith('darwin'):
os.environ['PY_USE_XMLPLUS'] = '1'
В худшем случае Вам, вероятно, придется создать его самим. Этот пакет больше не сохраняется, но все еще создает прекрасный и работает с современным 2.x Python. Основные документы здесь .
Последняя версия elementtree поддерживает XPath вполне прилично. Не будучи экспертом XPath я не могу сказать наверняка, если реализация полна, но она удовлетворила большинство моих потребностей при работе в Python. У меня есть также использование lxml и PyXML, и я нахожу etree хороший, потому что это - стандартный модуль.
ПРИМЕЧАНИЕ: я с тех пор нашел lxml, и для меня это - определенно лучший lib XML там для Python. Это делает XPath приятно также (хотя снова, возможно, не полное внедрение).
lxml пакет поддержки xpath. Это, кажется, работает вполне прилично, хотя я испытал некоторые затруднения из-за сам:: ось. Существует также Амара , но я не использовал ее лично.
Используйте LXML. LXML использует все возможности libxml2 и libxslt, но оборачивает их более "питоническими" привязками, чем привязки Python, которые являются родными для этих библиотек. Таким образом, он получает полную реализацию XPath 1.0. Собственный элемент ElemenTree поддерживает ограниченное подмножество XPath, хотя его может быть достаточно для ваших нужд.
Другим вариантом является PY-DOM-XPath , он работает без проблем с миниинком и чистый Python так работает на AppEngine.
import xpath
xpath.find('//item', doc)
Вы можете использовать:
PyXML :
from xml.dom.ext.reader import Sax2
from xml import xpath
doc = Sax2.FromXmlFile('foo.xml').documentElement
for url in xpath.Evaluate('//@Url', doc):
print url.value
libxml2 :
import libxml2
doc = libxml2.parseFile('foo.xml')
for url in doc.xpathEval('//@Url'):
print url.content
Другая библиотека - 4Suite: http://sourceforge.net/projects/foursuite/
Я не знаю, насколько она соответствует спецификации. Но для моего использования она работает очень хорошо. Выглядит заброшенной.