1
助けてください。私は大きなXMLファイルを解析し、そのデータをCSVファイルに転送しようとしています。私はタグの間にたくさんのデータを失ってしまい、その理由を理解することはできません。ここでPython SAXパーサー
は、XMLの一部である:ここで
<testcase internalid="1256092" name="hls_vtt_single_default_diable_vtt">
<node_order><![CDATA[7]]></node_order>
<externalid><![CDATA[6121]]></externalid>
<version><![CDATA[2]]></version>
<summary><![CDATA[<p>condition: single subtitle track is available in stream and it is default set the vtt track to diable status before playing stream.</p>
<p> </p>
<div>play stream no subtitle is rendered along with A/V<span class="Apple-tab-span" style="white-space:pre"> </span></div>
<div> </div>]]></summary>
<preconditions><![CDATA[]]></preconditions>
<execution_type><![CDATA[1]]></execution_type>
<importance><![CDATA[2]]></importance>
</testcase>
私のPythonコードです:
class CaseHandler(xml.sax.ContentHandler):
def __init__(self):
self.CurrentData = ""
self.externalid = ""
self.version = ""
self.summary = ""
def startElement(self, tag, attributes):
self.CurrentData = tag
if tag == "testcase":
name = attributes["name"]
outfile.write("\n" + name + " ,")
def endElement(self, tag):
if self.CurrentData == "externalid":
outfile.write("OTV52-" + self.externalid + ",")
elif self.CurrentData == "version":
outfile.write("Version: " + self.version + ",")
elif self.CurrentData == "summary":
outfile.write("Summary: " + self.summary + ",")
def characters(self, content):
if self.CurrentData == "externalid":
self.externalid = content
elif self.CurrentData == "version":
self.version = content
elif self.CurrentData == "summary":
self.summary = content
if (__name__ == "__main__"):
parser = xml.sax.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces, 0)
Handler = CaseHandler()
parser.setContentHandler(Handler)
parser.parse("OTV52.xml")
問題は、それが「要約」括弧内の情報のいずれかを返さないことです。 externalidとバージョンのデータは正常終了します。しかし、 "要約"ブラケットから返されるのはdiv括弧です。
「条件:
は、私はそれを返す必要があります。単一の字幕トラックをストリームに利用可能であり、それは、ストリームを再生する前にディアブル状態にVTTトラックを設定し、デフォルト あり/なし字幕が一緒にレンダリングされていないストリーミング再生しますV "