2011-07-21 10 views
-6

テキストファイルを読み込んだので、受け取った入力をXMLデータに変換する必要があります。C++でフォーマットされたテキストをXMLに変換する方法

例えば:テキストファイルの収量を読む:

<head> 
    <English>100</English> 
    <Science>80</Science> 
    <Computers>77</Computers> 
</head> 

どのように我々はこれを達成することができます

English  100 
Science   80 
Computers  77 

は、今、私たちのように出力を必要としますか?

+0

を作成し、この宿題ですか? – Soren

+0

-1:「研究努力はありません」 –

+0

XSLTがタスクに適している可能性があります。 –

答えて

2

できることは、テキストファイルを読んだ後に、<>を追加することです。

fout場合は、出力std::filestreamsubjectstd::stringであり、そして scoreintunsignedです:

fout << "<head>" << std::endl;  
while (/* file is not finished */) 
{ 
    // Read a string and an int from the file 

    subject.insert(0,"<"); 
    subject.insert(subject.size(),">"); 
    fout << subject << score; 

    subject.insert(1,"/"); 
    fout << subject<< std::endl; 
} 

fout << "</head>" << std::endl; 
+0

私はちょうど最初の行を書くつもりだったが、私は私の答えが不完全であると思った。 – xeon111

+0

これをクリーンアップして+1に値するでしょう。 – user7116

0

使用TinyXML: Here

はわずか4であなたが必要なすべてのものを、いソースファイル - 簡単なもの:

void build_simple_doc() 
{ 
    // Make xml: <?xml ..><Hello>World</Hello> 
    // Warning - this code isn't exception safe! 
    TiXmlDocument doc; 
    TiXmlDeclaration * decl = new TiXmlDeclaration("1.0", "", ""); 
    TiXmlElement * element = new TiXmlElement("Hello"); 
    TiXmlText * text = new TiXmlText("World"); 
    element->LinkEndChild(text); 
    doc.LinkEndChild(decl); 
    doc.LinkEndChild(element); 
    doc.SaveFile("madeByHand.xml"); 

    delete decl; 
    delete element; 
    delete text; 
} 

<?xml version="1.0" ?> 
<Hello>World</Hello> 
+0

-1:漏れたコードを示しています。これらの漏れを見て、あなたのコードを正しいものにするのに経験していない、ここに何人いるかを忘れないでください。 –

+0

@phresnel - そうです - チュートリアルページからコードを取得しました。とにかく、今修正されました。しかし例外ではありません。 'Lurkers'はauto_ptrsの使い方を知らないかもしれません。 – Schnommus

+5

bad-code-internet-propagationの興味深いデモンストレーション。 - 1。 –

関連する問題