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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
pocket
記事: 49
登録日時: 9年前

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

#1

投稿記事 by pocket » 9年前

お世話になっております.

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

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

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

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

#2

投稿記事 by みけCAT » 9年前

原因:1組の<func>~</func>の間にreturnの終了タグがなく、開始タグが2個ある
解決策:入力としてvalidなXMLを与えるか、間違いを許容する「XMLっぽい何かパーサー」を作る
だと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

pocket
記事: 49
登録日時: 9年前

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

#3

投稿記事 by pocket » 9年前

みけCATさん

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

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

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

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る