• R/O
  • SSH
  • HTTPS

xerces-c-utils: Commit


Commit MetaInfo

Revisión15 (tree)
Tiempo2011-05-03 12:01:38
Autor(del#42492)

Log Message

サンプルを整理し、動作を確認した。

Cambiar Resumen

Diferencia incremental

--- trunk/sample/Sample1/include/SampleHandler.hpp (revision 14)
+++ trunk/sample/Sample1/include/SampleHandler.hpp (revision 15)
@@ -15,7 +15,7 @@
1515 void endElement (const XMLCh* const uri, const XMLCh* const localname,
1616 const XMLCh* const qname);
1717
18- void characters(const XMLCh* const chars, const unsigned int length);
18+ void characters(const XMLCh* const chars, const XMLSize_t length);
1919 };
2020
2121 #endif
--- trunk/sample/Sample1/src/SampleHandler.cpp (revision 14)
+++ trunk/sample/Sample1/src/SampleHandler.cpp (revision 15)
@@ -9,6 +9,7 @@
99 using namespace xercesc;
1010
1111 #include <xercesc_utils/XMLCh2Char.hpp>
12+#include <xercesc_utils/XMLChPtr.hpp>
1213 using namespace xercesc_utils;
1314
1415 /**
@@ -16,7 +17,7 @@
1617 */
1718 void SampleHandler::startElement(const XMLCh* const uri, const XMLCh* const localname,
1819 const XMLCh* const qname, const Attributes& attrs) {
19- cout << "start : " << XMLCh2Char(localname) << endl;
20+ cout << "start : " << XMLCh2Char(localname) << endl;
2021 }
2122
2223 /**
@@ -24,17 +25,12 @@
2425 */
2526 void SampleHandler::endElement(const XMLCh* const uri, const XMLCh* const localname,
2627 const XMLCh* const qname) {
27- cout << "end : " << XMLCh2Char(localname) << endl;
28+ cout << "end : " << XMLCh2Char(localname) << endl;
2829 }
2930
3031 /**
3132 * タグ内の文字列を検出したら呼び出されるメソッドです。
3233 */
33-void SampleHandler::characters(const XMLCh* const chars, const unsigned int length) {
34- XMLCh* buffer=new XMLCh[XMLString::stringLen(chars)+1];
35- XMLString::copyString(buffer, chars);
36- XMLString::trim(buffer);
37-
38- cout << "content: " << XMLCh2Char(buffer) << endl;
39- delete[] buffer;
34+void SampleHandler::characters(const XMLCh* const chars, const XMLSize_t length) {
35+ cout << "content: " << XMLCh2Char(XMLChPtr(chars).trim()) << endl;
4036 }
--- trunk/sample/Sample1/src/main.cpp (revision 14)
+++ trunk/sample/Sample1/src/main.cpp (revision 15)
@@ -9,27 +9,27 @@
99 using namespace xercesc;
1010
1111 int main() {
12- // Xerces-C++を初期化する
13- try {
14- XMLPlatformUtils::Initialize();
15- } catch(...) {
16- cerr << "Xerces-C++の初期化に失敗しました。" << endl;
17- return 1;
18- }
12+ // Xerces-C++を初期化する
13+ try {
14+ XMLPlatformUtils::Initialize();
15+ } catch(...) {
16+ cerr << "Xerces-C++の初期化に失敗しました。" << endl;
17+ return 1;
18+ }
1919
20- SAX2XMLReader* parser=XMLReaderFactory::createXMLReader();
20+ SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
2121
22- try {
23- SampleHandler handler;
24- parser->setContentHandler(&handler);
25- parser->parse("example.xml");
26- } catch(...) {
27- cerr << "ファイルの解析に失敗しました。" << endl;
28- }
22+ try {
23+ SampleHandler handler;
24+ parser->setContentHandler(&handler);
25+ parser->parse("data/example.xml");
26+ } catch(...) {
27+ cerr << "ファイルの解析に失敗しました。" << endl;
28+ }
2929
30- delete parser;
30+ delete parser;
3131
32- XMLPlatformUtils::Terminate();
32+ XMLPlatformUtils::Terminate();
3333
34- return 0;
34+ return 0;
3535 }
--- trunk/sample/Sample1/data/example.xml (nonexistent)
+++ trunk/sample/Sample1/data/example.xml (revision 15)
@@ -0,0 +1,8 @@
1+<?xml version="1.0" encoding="Shift_JIS"?>
2+
3+<root-element>
4+ <element1>sample1</element1>
5+ <element2>
6+ <element3>sample3</element3>
7+ </element2>
8+</root-element>
--- trunk/sample/Sample2/include/SampleHandler.hpp (revision 14)
+++ trunk/sample/Sample2/include/SampleHandler.hpp (revision 15)
@@ -17,26 +17,28 @@
1717 */
1818 class SampleHandler : public xercesc::DefaultHandler {
1919 private:
20- xercesc_utils::XMLCh2CharTranscoder transcoder_;
20+ xercesc_utils::XMLCh2CharTranscoder transcoder_;
2121
22- /**
23- * XMLCh*をShift_JISのchar*に変換します。
24- */
25- xercesc_utils::CharPtr transcode(const XMLCh* const buffer) const {
26- return transcoder_.transcode(buffer);
27- }
22+ /**
23+ * XMLCh*をShift_JISのchar*に変換します。
24+ */
25+ xercesc_utils::CharPtr transcode(const XMLCh* const buffer) const {
26+ return transcoder_.transcode(buffer);
27+ }
2828
2929 public:
30- SampleHandler() : transcoder_("Shift_JIS") {
31- }
30+ SampleHandler() : transcoder_("Shift_JIS") {
31+ }
3232
3333 public:
34- void startElement(const XMLCh* const uri, const XMLCh* const localname,
35- const XMLCh* const qname, const xercesc::Attributes& attrs);
36- void endElement (const XMLCh* const uri, const XMLCh* const localname,
37- const XMLCh* const qname);
34+ void startElement(
35+ const XMLCh* const uri, const XMLCh* const localname,
36+ const XMLCh* const qname, const xercesc::Attributes& attrs);
37+ void endElement(
38+ const XMLCh* const uri, const XMLCh* const localname,
39+ const XMLCh* const qname);
3840
39- void characters(const XMLCh* const chars, const unsigned int length);
41+ void characters(const XMLCh* const chars, const XMLSize_t length);
4042 };
4143
4244 #endif
--- trunk/sample/Sample2/src/SampleHandler.cpp (revision 14)
+++ trunk/sample/Sample2/src/SampleHandler.cpp (revision 15)
@@ -7,6 +7,7 @@
77
88 #include "SampleHandler.hpp"
99
10+#include <string>
1011 #include <iostream>
1112 using namespace std;
1213
@@ -20,21 +21,24 @@
2021 */
2122 void SampleHandler::startElement(const XMLCh* const uri, const XMLCh* const localname,
2223 const XMLCh* const qname, const Attributes& attrs) {
23- cout << "start : " << transcode(localname) << endl;
24+ cout << "start : " << transcode(localname) << endl;
2425 }
2526
2627 /**
2728 * タグの終了を検出したら呼び出されるメソッドです。
2829 */
29-void SampleHandler::endElement(const XMLCh* const uri, const XMLCh* const localname,
30- const XMLCh* const qname) {
31- cout << "end : " << transcode(localname) << endl;
30+void SampleHandler::endElement(
31+const XMLCh* const uri, const XMLCh* const localname,
32+const XMLCh* const qname) {
33+ std::string name = transcode(localname);
34+
35+ cout << "end : " << name << endl;
3236 }
3337
3438 /**
3539 * タグ内の文字列を検出したら呼び出されるメソッドです。
3640 */
37-void SampleHandler::characters(const XMLCh* const chars, const unsigned int length) {
38- CharPtr test = transcode(chars);
39- cout << "content: " << transcode(XMLChPtr(chars).trim()) << endl;
41+void SampleHandler::characters(const XMLCh* const chars, const XMLSize_t length) {
42+ CharPtr test = transcode(chars);
43+ cout << "content: " << transcode(XMLChPtr(chars).trim()) << endl;
4044 }
--- trunk/sample/Sample2/src/main.cpp (revision 14)
+++ trunk/sample/Sample2/src/main.cpp (revision 15)
@@ -16,29 +16,29 @@
1616 using namespace xercesc;
1717
1818 int main() {
19- // Xerces-C++を初期化する
20- try {
21- XMLPlatformUtils::Initialize();
22- } catch(...) {
23- cerr << "Xerces-C++の初期化に失敗しました。" << endl;
24- return 1;
25- }
19+ // Xerces-C++を初期化する
20+ try {
21+ XMLPlatformUtils::Initialize();
22+ } catch(...) {
23+ cerr << "Xerces-C++の初期化に失敗しました。" << endl;
24+ return 1;
25+ }
2626
27- {
28- SampleHandler handler;
27+ {
28+ SampleHandler handler;
2929
30- SAX2XMLReader* parser=XMLReaderFactory::createXMLReader();
31- parser->setContentHandler(&handler);
32- parser->setErrorHandler(&handler);
30+ SAX2XMLReader* parser=XMLReaderFactory::createXMLReader();
31+ parser->setContentHandler(&handler);
32+ parser->setErrorHandler(&handler);
3333
34- try {
35- parser->parse("example.xml");
36- } catch(...) {
37- cerr << "ファイルの解析に失敗しました。" << endl;
38- }
34+ try {
35+ parser->parse("data/example.xml");
36+ } catch(...) {
37+ cerr << "ファイルの解析に失敗しました。" << endl;
38+ }
3939
40- delete parser;
41- }
40+ delete parser;
41+ }
4242
4343 XMLPlatformUtils::Terminate();
4444
--- trunk/sample/Sample2/data/example.xml (nonexistent)
+++ trunk/sample/Sample2/data/example.xml (revision 15)
@@ -0,0 +1,8 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<root-element>
4+ <element1>サンプル1</element1>
5+ <element2>
6+ <element3>サンプル3</element3>
7+ </element2>
8+</root-element>
Show on old repository browser