を解析し、ブロッキングのコメントをスキップするか、削除する必要があります私は、最初の行が解析XMLのlxmlのは、私が
<!--
で始まるXMLファイルを持って、この行をスキップして、1行目と2行目の治療のためにlxmlのための方法はありますかlxmlに渡す前に削除する必要がありますか?例えば
Iはlxmlのドキュメント
>>> root = etree.XML("<root><a>TEXT</a></root>")
>>> find_text = etree.XPath("//text()")
>>> text = find_text(root)[0]
>>> print(text)
TEXT
及びので、私はこのエラーが発生した最初の行の、実施例を実現しようとしました。
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
これは私がファイル
from lxml import etree
from lxml import objectify
import argparse
import os
parser = argparse.ArgumentParser()
parser.add_argument("path", type=str, nargs="+")
parser.add_argument('-e',
'--extension',
default='',
help='File extension to filter by.')
args = parser.parse_args()
name_pattern = "*" + args.extension
my_dir = args.path[0]
for dir_path, subdir_list, file_list in os.walk(my_dir):
for name_pattern in file_list:
full_path = os.path.join(dir_path, name_pattern)
# print(full_path)
# print(file_list)
def getsMeet(file_list):
for filename in sorted(file_list):
filename=my_dir + filename
yield filename
def parseXML():
"""
from mouse parsing a file with objectify
http://www.blog.pythonlibrary.org/2012/06/06/parsing-xml-with-python-using-lxml-objectify/
"""
for file in getsMeet(file_list):
with open(file) as f:
xml = f.read()
root = objectify.fromstring(xml)
print(root.tag)
# print(objectify.dump(root))
race = objectify.Element("race")
print(objectify.dump(race))
parseXML()
ファイルを実行するために使用しています私のスクリプトで客観化と有効やっダンプルートは完璧に動作している、それが失敗したetreeました。
これは、XMLの最初の要素のコメントと選択された切り取りで、かなり大きなファイルです。
<!-- Copyright Notice: © 2010 Racing NSW (and other parties working with it). NSW racing information,including fields, form and results, is subject to copyright which is owned by Racing NSW and other parties working with it. -->
<meeting id="42977" barriertrial="0" venue="Rosehill Gardens" date="2016-05-21T00:00:00" gearchanges="-1" stewardsreport="-1" gearlist="-1" racebook="0" postracestewards="0" meetingtype="TAB" rail="Timing - Electronic : Rail - +6m" weather="Fine " trackcondition="Good 3 " nomsdeadline="2016-05-16T11:00:00" weightsdeadline="2016-05-17T16:00:00" acceptdeadline="2016-05-18T09:00:00" jockeydeadline="2016-05-18T12:00:00">
</meeting>
'<! - 'はコメントタグですが、無視するかプログラムで削除することができます(ただし、タグを囲むことを忘れないように注意してください)。 [Here](http://stackoverflow.com/a/18313932/5922757)では、lxmlを使用してXMLでコメントをスキップする方法を見ることができます。 XMLファイル全体がコメントアウトされていますか?あなたの例では、あなたのファイルの場合のようにコメントタグは見えません。 – Jezor
文書要素タグの前のコメントノードは、xmlパーサによって正しく認識されているはずです... lxmlのバグかもしれません... –
ファイルを読み込むために使用しているコードを含めることができますか? XMLファイル自体からいくつかの行がありますか? –