C++でXML変換プログラムをつくっています。
Xerces c++ (3.0.1)というのを使っているのですが、
ネットでみたところ、パーサの初期化に大きく2通りあるみたいです。
<方法1>
char* xmlFile = "employees.xml";
XercesDOMParser* parser = new XercesDOMParser();
parser->parse(xmlFile);
DOMDocument* doc = parser->getDocument();
<方法2>
char* xmlFile = "employees.xml";
static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(gLS);
DOMLSParser* parser = ((DOMImplementationLS*)impl)->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
DOMDocument* doc = parser->parseURI(xmlFile);
どちらもうまくいくのですが、方法2のやっていることの意味がよくわかりません。他にも、
impl = DOMImplementation::getImplementation() ;
ですとか
impl = DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
なども見受けられます。
方法1のように普通に生成するのと、LS指定するのと何か違うのでしょうか。
javaにorg.w3c.dom.lsパッケージなどがあるみたいですし、
http://java.sun.com/javase/ja/6/docs/ja/api/org/ …
などをみると「ロードおよび保存」とあるので、load と save のことかとも思えるのですが、それが何なのかよくわからないのです。
LSが何を指すのか、方法2のように生成するのがどんな意味があるのかわかる方、教えていただけませんか。
環境:
WindowsXP SP3
Visual Studio 2008 SP1
No.1ベストアンサー
- 回答日時:
これの事じゃないかな。
http://xerces.apache.org/xerces-c/apiDocs-3/clas …
> Detailed Description
> DOMImplementationLS contains the factory methods for creating Load and Save objects.
>
> An object that implements DOMImplementationLS is obtained by doing a binding specific cast from DOMImplementation to DOMImplementationLS. Implementations supporting the Load and Save feature must implement the DOMImplementationLS interface on whatever object implements the DOMImplementation interface.
ご回答ありがとうございます。
apiはみたつもりでちゃんと読んでませんでした。
Load and Save でいいみたいですね。
引き続き調べたところ、DOMレベル3の勧告で Load and Save Specification というのがありました。
http://www.w3.org/TR/DOM-Level-3-LS/
別サイトに「プラットフォーム及び言語に依存しない方法で XML 文書やデータの読み込みや書き出しが可能」とあるのですが、わかるようなわからないような。読み込み・書き込みの方法を規定したってことでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- ルーター・ネットワーク機器 transix回線で契約、外部からIPv6でNASにアクセスしたい 1 2023/01/26 15:07
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) PythonのプログラムのDirに関する質問です 3 2022/12/04 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0 特殊文字コードの変換
-
CPUの考え方を教えてください ...
-
XPathで途中に名前空間が設定さ...
-
UTF-8でエンコーディングとはど...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
同じタグ名の項目取得
-
TreeViewの追加 C++Builder
-
タグの有無の判定
-
バッチファイルでテキストファ...
-
getElementsByNameの要素数が取...
-
■XSLT■複数のノードを違う属性...
-
HTTPステータス 404 - There is...
-
xmlファイルが上手にHTMLに変換...
-
VBSでXMLを読込、検索結果をテ...
-
Listからのnull要素を削除方法は?
-
スタイルシートを使用したXM...
-
C++Builder 6でツリービュー(...
-
C# listviewでサブアイテムを順...
-
VBAでXMLを出力するプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C++によるDOMのプログラム:「L...
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
-
XML、XSLTの適応エラー(IEから...
-
UTF-8でエンコーディングとはど...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
XMLファイル内のデータ(値)を変...
-
xmlファイルが上手にHTMLに変換...
-
同じタグ名の項目取得
-
ExcelVBAで書き出した文字が化ける
-
ノードとは
-
XPathで途中に名前空間が設定さ...
-
あるノードリストに、特定の名...
-
XMLで特殊文字を扱うにはどうし...
-
TreeView の初期表示について
-
Excel-VBAでXMLの複数ノードの...
おすすめ情報