WorkToolSmith

Delphi OpenXMLがうまく動かない

太田アベル

・ 更新 ・ 2分で読めます

当サイトの記事には一部に広告リンクが含まれます。

DelphiのネイティブXMLコンポーネント「OpenXML」があります。
(しかしOpenXMLのページの背景色はものすごいな・・・目が痛い)

項目数の多いXMLでXPathが使いたかったのでインストールしてみましたが・・・うまく動きません。環境はWindows 7 + Delphi2009

とりあえずインストール

Alternative Document Object Model v.5.1.4 をパッケージとしてインストールし、Utility Library v.3.0.2 を追加でsourcesにつっこみます。

exsamplesに入っている「xpath example」を開きコンパイル。ここまでは順調。

しかし

UTF-8エンコードでごくシンプルなXMLでテスト。

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

<address>

    <item>

        <name>織田信長</name>

        <access kind="email"></access>

        <access kind="url">http://www.example.com/1</access>

    </item>

    <item>

        <name>豊臣秀吉</name>

        <access kind="email"></access>

        <access kind="url">http://www.example.com/2</access>

    </item>

    <item>

        <name>徳川家康</name>

        <access kind="email"></access>

        <access kind="url">http://www.example.com/3</access>

    </item>

</address>

こんなのです。
そしてXPath「/address/item」を入力すると・・・

「プロジェクト xpath_example.exe は例外クラス EXPath_Err (メッセージ ‘XPath type error.’ )を送出しました。」

となってしまいます。

ほかにも「/address」とか「//item」などを入力するも同じ例外。

ヒントを得たものの

Teppi TechnologyさんのページでXPathについてハマリの症状が載っていました!

注意!!(めちゃくちゃハマル)

OpenXMLのXPath検索は、NameSpace(名前空間)が宣言されているドキュメントでなければ名前検索が正しく動かない。 名前空間なしのドキュメントでXPath検索が動くようにするには、TDomElement, TDomAttributeのコンストラクタに以下の変更を加える必要がある。:

おおっ!これだこれ!

ということで早速TDomElement、TDomAttributeのコンストラクタを変更。

しかし・・・

RestSS20110621100356

ダメだ・・・

ということでこのブログでは未解決でございます・・・(泣
どなたか解決された方がありましたら教えてください。

太田アベル

太田アベル

パソコンを7歳からいじり始めて40年。とにかくパソコンが好きです。気になった商品をほぼ自腹で買いまくってレビュー中!良かった点、悪かった点をズバズバ書きます。

𝕏 でフォロー プロフィールを見る

こちらもおすすめ