ページ 11

qtにおけるXMLの解析について

Posted: 2016年2月19日(金) 15:44
by pocket
お世話になっております.

今回はqtにおけるxml解析について質問させていただきます.
qt歴は半年ほどです.

現在qtのSAXを用いたxml解析をしています.
ですが,下記のエラーが出ます.

Parse error at line 13, column 7:
tag mismatch.

使用したxmlを載せます.

コード:

<?xml version='1.0' encoding='UTF-8'?>
<doc>
<name>panasonic aircontroler</name>
<type>aircontroler</type>
<func>
	<func_name>TVon</func_name>
	<in_out>out</in_out>
	<return>null<return>
	<arg_num>0</arg_num>
	<arg1>null</arg1>
	<arg2>null</arg2>
	<arg3>null</arg3>
</func>
<func>
	<func_name>TVoff</func_name>
	<in_out>out</in_out>
	<return>null<return>
	<arg_num>0</arg_num>
	<arg1>null</arg1>
	<arg2>null</arg2>
	<arg3>null</art3>
</func>
<func>
	<func_name>channel_up</func_name>
	<in_out>out</in_out>
	<return>null<return>
	<arg_num>0</arg_num>
	<arg1>null</arg1>
	<arg2>null</arg2>
	<arg3>null</art3>
</func>
<func>
	<func_name>channel_down</func_name>
	<in_out>out</in_out>
	<return>null<return>
	<arg_num>0</arg_num>
	<arg1>null</arg1>
	<arg2>null</arg2>
	<arg3>null</art3>

</func>
</doc>
どうも13行目の</func>で解析がとまっているようです.
このエラーは以前,タグの最初と最後が一致していないときに出ました.
しかし,今回は一致しているように思います.

xmlについての知識がほぼ無いので,基本的な間違いをしている可能性もあります.
原因と解決策についてアドバイスいただければ幸いです.

よろしくお願いいたします.

Re: qtにおけるXMLの解析について

Posted: 2016年2月19日(金) 19:03
by みけCAT
原因:1組の<func>~</func>の間にreturnの終了タグがなく、開始タグが2個ある
解決策:入力としてvalidなXMLを与えるか、間違いを許容する「XMLっぽい何かパーサー」を作る
だと思います。

Re: qtにおけるXMLの解析について

Posted: 2016年2月19日(金) 22:14
by pocket
みけCATさん

回答ありがとうございます。

掲載したXMLですが、ご指摘いただきました部分以外にも複数の間違いがありました。

すべて修正したところ適切に動作しました。

また、私が検証したところfirefoxでxmlを検証するのが一番いいということが分かりました。

この問題に対して考えて下さった皆様に感謝いたします。