2011-10-04 13 views
5

if_ixml_documentのノード全体を行き来したい。これを行う最善の方法は何ですか?Abap - XML文書のノード全体をトラバースしますか?

サンプルドキュメントをご覧ください。この文書で

<text> 
    <id> 
     <guid auto="false"> 
       432543254543 
     </guid> 
    </id> 
    <title> 
     <short_title italics="on"> 
       <bold language = "german"> 
        "Hello" 
       </bold> 
     </short_title> 
    </title> </text> 

、私はあなたが実装されるべきであるDocumentTraversalインタフェースを使用することができるなどのノード<text>, <id>, <guid> , <title>, <short_title>, <bold>を横断するために事前に

おかげ

よろしく、 アレックス

答えて

2

extensive XML manual on SAP's documentation websiteがあります(リンクが正しく動作しない場合は、help.sap.comのNetWeaver開発者ガイドで「xmlライブラリ」を検索してください)。

「iXML ABAPオブジェクトジャンプスタート」の章では、すぐに開始する必要があります。 「完全なDOMツリーの繰り返し処理」段落は、次のサンプルコードを提供します。

DATA: lcl_xml_doc TYPE REF TO cl_xml_document, 
      lf_node TYPE REF TO if_ixml_node, 
      lf_value TYPE string, 
      i_xml type string, 
      lf_name TYPE string, 
     i_xml = 'PUT your XML HERE'. 
     CREATE OBJECT lcl_xml_doc. 
     IF lcl_xml_doc IS BOUND. 
     IF lcl_xml_doc->parse_string(i_xml) EQ 0. 
      lf_node = lcl_xml_doc->m_document. 
      IF lf_node IS NOT INITIAL. 
      lf_iterator = lf_node->create_iterator(). 
      lf_node = lf_iterator->get_next(). 
      WHILE NOT lf_node IS INITIAL. 
       lf_name = lf_node->get_name(). 
       lf_value = lf_node->get_value(). 
       IF lf_name = 'text'. 
       " do something for text 
       ENDIF. 
       ENDIF. 
       lf_node = lf_iterator->get_next(). 
      ENDWHILE. 
     ENDIF. 

、 アレクサンダーをお楽しみください:

data: iterator type ref to if_ixml_node_iterator, 
     node  type ref to if_ixml_node. 
iterator = document->create_iterator(). 
node = iterator->get_next(). 
while not node is initial. 
    * do something with the node 
    ... 
    node = iterator->get_next(). 
endwhile. 
-1

が必要任意のDOMライブラリ(Xercesが持っています):

+0

質問ですABAP質問としてマークされているので、ABAP言語のためのものとみなします。たぶん@ user871912で確認できます。 – mydoghasworms

+0

@mydoghasworms。付与された。しかし、ABAPは同じインタフェースをサポートしていますが、少し異なった構文になっています:-) –

4

最初の手順は、XMLを次のように解析することです。もちろん文字列にファイルからXMLをアップロードすることができますが、これはあくまでも一例です:

data: lr_xml type ref to cl_xml_document. 
data: lr_node type ref to if_ixml_node. 
data: lv_xml type string. 

lv_xml = '<text> <id> <guid auto="false"> 432543254543 </guid> </id> <title> <short_title italics="on"> <bold language = "german"> "Hello"</bold> </short_title> </title> </text>'. 

create object lr_xml. 

lr_xml->parse_string(lv_xml). 
lr_node = lr_xml->get_first_node(). 

今、あなたは、XML文書のルートを指すIF_XML_NODEのインスタンスを持っています。これで、さまざまなメソッドを使用して、XMLツリーをトラバースし、GET_CHILDREN、GET_ATTRIBUTES、GET_NAMEなどのさまざまなメソッドを使用して値を取得できます。

効率的ですが、これはかなり小さいXMLドキュメントでは問題ありません特定のノードセットを探している場合は、XPATHクエリを使用して調べることができます。

+0

多くの返信に感謝します。まず、特定のノードセットを探しているわけではありません。私はいくつかの条件のすべての要素の属性値を変更するような非常に一般的なメソッドsomethigを書いています。このコードから、私は確かにルートノードを取得します。しかし、get_childrenのようなメソッドを使用している場合よりも、ルートノードの直下の子しか取得できません。サンプル文書では、私は要素を取得しますが、私はそれらの中に子供を得ることはありません。私は、ドキュメント内の要素全体をトラバースできるメソッドを探しています。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/871912/">Alex</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+1</span></div> <div class="col-lg-11"> <p class="commenttext">正解ですが、直接の子のみを提供します。あなたがする必要があるのは、再帰的サブルーチンを書いて、文書全体を歩くことです。私はうまくいけばすぐにあなたに例をあげることができます。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/274354/">mydoghasworms</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>私は、次の例の状況を明確にすることができます願っています。</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/7660171">出典</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2011-10-05 10:52:42</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">0<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>マニュアルxmlの移動は、エラーが発生しやすく、環境が変化すると複雑になります。実際にダイレクトコードのトラバーサルが必要かどうかを確認することができます。</p> <p>(XSLT)変換を使用すると、XMLをABAP構造化タイプに変換できます。 XPathがサポートされています。</p> <p>変換の宣言、テスト、およびデバッグは、トランザクション<code class="prettyprint-override">STRANS</code>によって開かれた変換エディタを使用して行われます。</p> <p>XSLTは、変換タイプとして使用可能です:あなたのABAPコードで <a href="http://help.sap.com/abapdocu_70/en/ABENABAP_XSLT.htm" rel="nofollow">ABAP XSLT Transformation</a></p> <p>あなただけの言語要素<code class="prettyprint-override">CALL TRANSFORMATION</code>を呼び出しますし、データはその後、あなたのターゲット構造で処理する準備ができている: <a href="http://help.sap.com/abapdocu_70/en/ABAPCALL_TRANSFORMATION.htm" rel="nofollow">ABAP Statement: 'CALL TRANSFORMATION'</a></p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/8794993">出典</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-01-09 20:47:32</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1098409/">Eric</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">関連する問題</div> <ul class="relative_list"> <li> 1. <a href="http://ja.voidcc.com/question/p-odmfccuj-q.html" target="_blank" title="文書全体ではなくxmlノードを検証する"> 文書全体ではなくxmlノードを検証する </a> </li> <li> 2. <a href="http://ja.voidcc.com/question/p-hlrmxbzo-p.html" target="_blank" title="C#でXML文書をxmlノードに追加しますか?"> C#でXML文書をxmlノードに追加しますか? </a> </li> <li> 3. <a href="http://ja.voidcc.com/question/p-mcmquxsa-er.html" target="_blank" title="XML文書内からノードを選択していますか?"> XML文書内からノードを選択していますか? </a> </li> <li> 4. <a href="http://ja.voidcc.com/question/p-hsdqixvy-cn.html" target="_blank" title="XML文書全体をPHP変数に自動的に解析します"> XML文書全体をPHP変数に自動的に解析します </a> </li> <li> 5. <a href="http://ja.voidcc.com/question/p-tizjiylj-ct.html" target="_blank" title=""xmlns ="を追加せずにXMLノード全体の内容を書き込む"> "xmlns ="を追加せずにXMLノード全体の内容を書き込む </a> </li> <li> 6. <a href="http://ja.voidcc.com/question/p-ntlsptft-ea.html" target="_blank" title="PHPある文書から別の文書にxmlノードをコピー"> PHPある文書から別の文書にxmlノードをコピー </a> </li> <li> 7. <a href="http://ja.voidcc.com/question/p-hfdnvkak-a.html" target="_blank" title="xsl:親ノードを除くxml全体をコピーしますが、その子ノードは保持します"> xsl:親ノードを除くxml全体をコピーしますが、その子ノードは保持します </a> </li> <li> 8. <a href="http://ja.voidcc.com/question/p-zcvmdeed-ch.html" target="_blank" title="xpath経由で未知のxml文書をトラバースする"> xpath経由で未知のxml文書をトラバースする </a> </li> <li> 9. <a href="http://ja.voidcc.com/question/p-gbnxthqj-bx.html" target="_blank" title="あるXML文書から別のXML文書にノードをコピー/インポートできますか?"> あるXML文書から別のXML文書にノードをコピー/インポートできますか? </a> </li> <li> 10. <a href="http://ja.voidcc.com/question/p-kjtzqknu-dt.html" target="_blank" title="xml文書に子ノードを追加"> xml文書に子ノードを追加 </a> </li> <li> 11. <a href="http://ja.voidcc.com/question/p-qelaaswd-x.html" target="_blank" title="XML文書全体のXSDで属性の一意性を検証する"> XML文書全体のXSDで属性の一意性を検証する </a> </li> <li> 12. <a href="http://ja.voidcc.com/question/p-rosdrhjh-ev.html" target="_blank" title="XSLは、ノード全体を別のxmlファイルのデータで置き換えます。"> XSLは、ノード全体を別のxmlファイルのデータで置き換えます。 </a> </li> <li> 13. <a href="http://ja.voidcc.com/question/p-rcgzsvau-en.html" target="_blank" title="ノードのGraphicsmagickがjpg全体を書き込んでいない"> ノードのGraphicsmagickがjpg全体を書き込んでいない </a> </li> <li> 14. <a href="http://ja.voidcc.com/question/p-zemeccdl-h.html" target="_blank" title="XML文書のノードを更新または挿入する"> XML文書のノードを更新または挿入する </a> </li> <li> 15. <a href="http://ja.voidcc.com/question/p-fxbnodhk-by.html" target="_blank" title="FFMPEGはノード全体のプロセスをハングします"> FFMPEGはノード全体のプロセスをハングします </a> </li> <li> 16. <a href="http://ja.voidcc.com/question/p-vucylusf-g.html" target="_blank" title="既存の文書の特定の位置にXMLノードを挿入します。"> 既存の文書の特定の位置にXMLノードを挿入します。 </a> </li> <li> 17. <a href="http://ja.voidcc.com/question/p-ahamhxjb-dq.html" target="_blank" title="文書全体からクラスを削除するには"> 文書全体からクラスを削除するには </a> </li> <li> 18. <a href="http://ja.voidcc.com/question/p-fcknhvci-ea.html" target="_blank" title="選択したテキストからサイト文書をトラバースする"> 選択したテキストからサイト文書をトラバースする </a> </li> <li> 19. <a href="http://ja.voidcc.com/question/p-khdmxavo-cq.html" target="_blank" title="ABAP - CONCATEN文"> ABAP - CONCATEN文 </a> </li> <li> 20. <a href="http://ja.voidcc.com/question/p-fbdfoxip-s.html" target="_blank" title="xml文書内のノード範囲を削除する"> xml文書内のノード範囲を削除する </a> </li> <li> 21. <a href="http://ja.voidcc.com/question/p-fzhbxwqa-c.html" target="_blank" title="ABAPからXMLへのXSLT変換"> ABAPからXMLへのXSLT変換 </a> </li> <li> 22. <a href="http://ja.voidcc.com/question/p-ytrpgasp-en.html" target="_blank" title="トラバースXML PHP"> トラバースXML PHP </a> </li> <li> 23. <a href="http://ja.voidcc.com/question/p-qmozvlmu-y.html" target="_blank" title="ostream ::構造体全体が書き込まれませんか?"> ostream ::構造体全体が書き込まれませんか? </a> </li> <li> 24. <a href="http://ja.voidcc.com/question/p-cfkxjjin-cs.html" target="_blank" title="jQueryを使用してXML文書のすべてのノードを移動する"> jQueryを使用してXML文書のすべてのノードを移動する </a> </li> <li> 25. <a href="http://ja.voidcc.com/question/p-rpmwkjlh-e.html" target="_blank" title="文書全体のテキストコンテンツを取得する方法は?"> 文書全体のテキストコンテンツを取得する方法は? </a> </li> <li> 26. <a href="http://ja.voidcc.com/question/p-spwogybv-x.html" target="_blank" title="URLからクエリ文字列全体を削除しますか?"> URLからクエリ文字列全体を削除しますか? </a> </li> <li> 27. <a href="http://ja.voidcc.com/question/p-ewnbhtvh-n.html" target="_blank" title="は、C#でXML文書の親ノードを作成"> は、C#でXML文書の親ノードを作成 </a> </li> <li> 28. <a href="http://ja.voidcc.com/question/p-qwuqqajt-bm.html" target="_blank" title="PHP foreach/while/loop - データベースなしでカテゴリ階層全体をトラバースする方法"> PHP foreach/while/loop - データベースなしでカテゴリ階層全体をトラバースする方法 </a> </li> <li> 29. <a href="http://ja.voidcc.com/question/p-chqfocpp-de.html" target="_blank" title="MySQLの最適化 - WHERE foo INサブ選択用のテーブル全体をトラバースしますか?"> MySQLの最適化 - WHERE foo INサブ選択用のテーブル全体をトラバースしますか? </a> </li> <li> 30. <a href="http://ja.voidcc.com/question/p-abkqcogl-a.html" target="_blank" title="SQL ServerでのXML文書のノード順序の検索"> SQL ServerでのXML文書のノード順序の検索 </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422545"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新の質問 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ja.voidcc.com/question/p-gmowpchh-pw.html" target="_blank" title="switch文で別のケースの中にケースを置くことができるのはなぜですか?"> switch文で別のケースの中にケースを置くことができるのはなぜですか? </a> </li> <li class="side_article_list_item"> 2. <a href="http://ja.voidcc.com/question/p-gvvphudz-pm.html" target="_blank" title="一致するMySqlストアドプロシージャ"> 一致するMySqlストアドプロシージャ </a> </li> <li class="side_article_list_item"> 3. <a href="http://ja.voidcc.com/question/p-dqytmkaa-po.html" target="_blank" title="ライブラリにスクリプトをインストールしてインポートするにはどうしたらいいですか?"> ライブラリにスクリプトをインストールしてインポートするにはどうしたらいいですか? </a> </li> <li class="side_article_list_item"> 4. <a href="http://ja.voidcc.com/question/p-vkogekmg-pr.html" target="_blank" title="Djangoでのセロリのデモンストレーション"> Djangoでのセロリのデモンストレーション </a> </li> <li class="side_article_list_item"> 5. <a href="http://ja.voidcc.com/question/p-woxfiejg-pq.html" target="_blank" title="明示的に定義された明示的コンストラクタ対暗黙的に定義されたコンストラクタ"> 明示的に定義された明示的コンストラクタ対暗黙的に定義されたコンストラクタ </a> </li> <li class="side_article_list_item"> 6. <a href="http://ja.voidcc.com/question/p-utkjgtna-qd.html" target="_blank" title="forループ内のフォルダ+コンテンツ全体を削除する方法は?私が働いているスクリプトの"> forループ内のフォルダ+コンテンツ全体を削除する方法は?私が働いているスクリプトの </a> </li> <li class="side_article_list_item"> 7. <a href="http://ja.voidcc.com/question/p-vbelsokv-qb.html" target="_blank" title="複数のユーザーコントロールをASP.NETとjQueryでPDFにエクスポートする最も良い方法"> 複数のユーザーコントロールをASP.NETとjQueryでPDFにエクスポートする最も良い方法 </a> </li> <li class="side_article_list_item"> 8. <a href="http://ja.voidcc.com/question/p-cohnecuq-qb.html" target="_blank" title="Webdriver.get(URL)オープンFirefoxのではなく、URL"> Webdriver.get(URL)オープンFirefoxのではなく、URL </a> </li> <li class="side_article_list_item"> 9. <a href="http://ja.voidcc.com/question/p-sauzwfyy-pk.html" target="_blank" title="Javaの関数を正しく上書きする方法は?"> Javaの関数を正しく上書きする方法は? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ja.voidcc.com/question/p-ptkvmajg-ps.html" target="_blank" title="Cコードpthread順番に印刷する3つのスレッドを持つセマフォプログラム"> Cコードpthread順番に印刷する3つのスレッドを持つセマフォプログラム </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 関連する問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ja.voidcc.com/question/p-odmfccuj-q.html" target="_blank" title="文書全体ではなくxmlノードを検証する"> 文書全体ではなくxmlノードを検証する </a> </li> <li class="side_article_list_item"> 2. <a href="http://ja.voidcc.com/question/p-hlrmxbzo-p.html" target="_blank" title="C#でXML文書をxmlノードに追加しますか?"> C#でXML文書をxmlノードに追加しますか? </a> </li> <li class="side_article_list_item"> 3. <a href="http://ja.voidcc.com/question/p-mcmquxsa-er.html" target="_blank" title="XML文書内からノードを選択していますか?"> XML文書内からノードを選択していますか? </a> </li> <li class="side_article_list_item"> 4. <a href="http://ja.voidcc.com/question/p-hsdqixvy-cn.html" target="_blank" title="XML文書全体をPHP変数に自動的に解析します"> XML文書全体をPHP変数に自動的に解析します </a> </li> <li class="side_article_list_item"> 5. <a href="http://ja.voidcc.com/question/p-tizjiylj-ct.html" target="_blank" title=""xmlns ="を追加せずにXMLノード全体の内容を書き込む"> "xmlns ="を追加せずにXMLノード全体の内容を書き込む </a> </li> <li class="side_article_list_item"> 6. <a href="http://ja.voidcc.com/question/p-ntlsptft-ea.html" target="_blank" title="PHPある文書から別の文書にxmlノードをコピー"> PHPある文書から別の文書にxmlノードをコピー </a> </li> <li class="side_article_list_item"> 7. <a href="http://ja.voidcc.com/question/p-hfdnvkak-a.html" target="_blank" title="xsl:親ノードを除くxml全体をコピーしますが、その子ノードは保持します"> xsl:親ノードを除くxml全体をコピーしますが、その子ノードは保持します </a> </li> <li class="side_article_list_item"> 8. <a href="http://ja.voidcc.com/question/p-zcvmdeed-ch.html" target="_blank" title="xpath経由で未知のxml文書をトラバースする"> xpath経由で未知のxml文書をトラバースする </a> </li> <li class="side_article_list_item"> 9. <a href="http://ja.voidcc.com/question/p-gbnxthqj-bx.html" target="_blank" title="あるXML文書から別のXML文書にノードをコピー/インポートできますか?"> あるXML文書から別のXML文書にノードをコピー/インポートできますか? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ja.voidcc.com/question/p-kjtzqknu-dt.html" target="_blank" title="xml文書に子ノードを追加"> xml文書に子ノードを追加 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ja.voidcc.com/contact">お問い合わせ</a></li> <li>© 2020 JA.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>