2017-08-16 13 views
2

私はblender-pythonを使用してXMLファイル(注釈)を作成しましたが、問題はMatlabコードを使用してそれを読むと、次のエラー:この機能からPython - blender XMLアノテーションファイル(matlabコードで動作しません)

Error in VOCxml2struct>parse (line 10) 
if ~isempty(parent)&&xml(ind)~='<' 

res=[]; 

if ~isempty(parent)&&xml(ind)~='<' 

i=findchar(xml,ind,'<'); 

res=trim(xml(ind:i-1)); 

ind=i; 

[tag,ind]=gettag(xml,i); 

if ~strcmp(tag,['/' parent]) 

    error('<%s> closed with <%s>',parent,tag); 
end 

それはPascal_VocデータセットからXMLファイルは同じコードで正常に動作しないことを考えると少し混乱だとあなたは、両方のXMLファイルを参照してくださいするとき彼らは同じように見える、私はrequirを作成しました私のblender-pythonコードは、うまくいけば、それを修正するための提案があります。

ありがとうございます。

with open("000007.xml", "w", encoding="utf-8") as file: 
    file.write ("<annotation>\n") 
    file.write (" <folder>VOC2007</folder>\n") 
    file.write (" <filename>" + '000007.jpg' + "</filename>\n") 
    file.write (" <source>\n") 
    file.write ("  <database>The VOC2007 Database</database>\n") 
    file.write ("  <annotation>PASCAL VOC2007</annotation>\n") 
    file.write ("  <image>flickr</image>\n") 
    file.write ("  <flickrid>194179466</flickrid>\n") 
    file.write (" </source>\n") 
    file.write (" <owner>\n") 
    file.write ("  <flickrid>monsieurrompu</flickrid>\n") 
    file.write ("  <name>Thom Zemanek</name>\n") 
    file.write (" </owner>\n") 
    file.write (" </size>\n") 
    file.write ("  <width>500</width>\n") 
    file.write ("  <height>333</height>\n") 
    file.write ("  <depth>3</depth>\n") 
    file.write (" </size>\n") 
    file.write (" <segmented>0</segmented>\n") 
    file.write (" <object>\n") 
    file.write ("  <name>car</name>\n") 
    file.write ("  <pose>Unspecified</pose>\n") 
    file.write ("  <truncated>1</truncated>\n") 
    file.write ("  <difficult>0</difficult>\n") 
    file.write ("  <bndbox>") 
    file.write ("\n   <xmin>" + '141' + "</xmin>") 
    file.write ("\n   <ymin>" + '50' + "</ymin>") 
    file.write ("\n   <xmax>" + '500' + "</xmax>") 
    file.write ("\n   <ymax>" + '330' + "</ymax>") 
    file.write ("\n  </bndbox>\n") 
    file.write (" </object>\n") 
    file.write ("</annotation>\n") 

答えて

2

Question ... when you see both XML files they look identical

ないでトラストあなたは比較することdiffのprogrammを使用します!
xmlvalidation.com

ようなXML Validatorは、それがMatlabエラーに関連するかどう知っているが、あなたのコードとtherfore結果XMLは、次のエラーを持っていなかった使用します。

# Missing Header 
<?xml version="1.0" encoding="UTF-8"?> 

# First has to be <size> not closing 
file.write (" </size>\n") 

はにxml Pythonのモジュールを使用して考えてみてXMLを作成します。

関連する問題