ライブラリ: EasyXML - XMLパーサー

 

EasyXML - XMLパーサー:

EasyXMLは、ネイティブMQL5 XML構文解析ライブラリです。URL、ファイルと文字列の入力の3つの異なるソースからのXMLが解析可能です。それは完全にオブジェクト指向でMQL5との手際よい統合に努めています。DOMを格納にはMQL5標準ライブラリのCObject およびCArrayObjが利用されます。

作者: Paul van Hemmen

削除済み  

新しい MT 5で 、最初の試行で コードを コンパイルして実行することが できました。

  1. wininetの 問題は0です
  2. とても良い コード

素晴らしい貢献です!ありがとうございます。

 

良いライブラリをありがとう、

ファイル入力 "メソッドからドキュメントを解析 しようとすると、次のようなエラーが出ました。開いているタグの先頭であるべきです P:0 ***。

頭を痛めて世界中を検索した結果、パーサーが受け付けるエンコーディングは "UCS-2 LE BOM "であることに気づきました、

私のXMl Writerは "UTF-8-BOM "を使用しているので、このデフォルトエンコーディングを変更する方法はありますか?

 

またまたこんにちは、私のケースの解決策を見つけました。)

CEasyXml::loadXmlFromFile(文字列 pFilename) "関数を 1行変更しました:

 int hFile=FileOpen(pFilename,FILE_READ|FILE_ANSI,CP_UTF8); 

これは、"UTF-8-BOM" のエンコーディングフォーマットで正しくファイルを読み込みます。

しかし、文字列から "BOM "Bytes Of Orders="ï "¿"文字を削除する必要があります:

StringReplace(pText,"",""); 

 

https://www.usda.gov/oce/commodity/wasde/latest.xml このページのデータを取得しようとしているのですが、example_inline_parsingスクリプトでこのようなエラーが発生します。Should be the beginning of an open tag P:0 ***
元のurlを上のurlに置き換えただけなのですが、スクリプトが動きません。

何かアイデアはありますか?

ありがとうございました。

 

Hi, Paul.


Thank you for providing a great utility class.

By the way, can you make a deep copy of an CEasyXmlNode object with the copy constructor?

 

うまくいかない...。

さらにエラー

sOutput += (ActualNode.getValue()) ? " Value: '" + ActualNode.getValue() + "'" : "";

文字列 ActualNode.getValue()...を 返します。

 

自己閉鎖タグが使用されるバグがあるようです。


そのため、多くのxmlエディターでは、空のタグがあると、そのタグは自動的に自己閉じタグに変換されます。 たとえば、次のようになります。

<element></element> 

は自動的に

<element/>  or  


<element />

になります。

w3のXML要素に よると、自己閉じタグの使用は合法です。 そのため、xml文書をインポートする際に、なぜ自己閉じタグがサポートされないのかがわかりません。

幸い私の場合、自己閉じタグの量は比較的少ないのですが、文書に何百、何千というタグがある場合はどうなるのでしょうか。 ユーザーはこれらのタグをどうにかして開閉タグに変換することを期待されているのでしょうか?


edit:自己閉じタグを分離タグに変換したい場合は、次のRegEx find/replaceを使用するとよいでしょう。

検索:(<)(\w*)(.*)(/>)

置換:<$2$3></$2

[これは、TextCrawler3で使用されている.NET regExエンジンによるものです。 他のエンジンでは異なる形式が使用されるかもしれませんので、実験してみてください]。 元のタグ内にすべての属性があれば、それを保持する

XML Elements
XML Elements
  • www.w3schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
 

こんにちは、ライブラリを使用していますが、easyxmlnode.mqhでこの関数内で無効なポインタの エラーが発生します:

CEasyXmlNode *CEasyXmlNode::createSibling(CEasyXmlNode *pSiblingNode)
  {
   pSiblingNode.Prev(GetPointer(this));
   GetPointer(this).Next(pSiblingNode);

   ParentNode.createChild(pSiblingNode);
   return ParentNode.LastChild();
  }

このエラーを解決する方法をご存知ですか?

 
mappi1589 無効なポインタの エラーが発生します:

このエラーを解決する方法をご存知ですか?

あなたのXML入力は何ですか?
 
FXファクトリーカレンダーxmlは、ほぼ毎回動作するのですが、不定期にエラーが表示されます。このエラーを避けるために何かできることはありますか?