問題タブ [xmlnode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
validation - C# の XmlReaderSettings.ValidationEventHandler で無効な XMLNode を取得する方法
コールバック検証イベントを使用して、失敗した XML 検証のカスタム エラー メッセージを作成しようとしています。要素の送信者オブジェクトが XMLReader であることに気付き、((XmlReader)sender).Name から要素または現在のノード名を取得し、ValidationEventargs.Exception.Message から例外メッセージを取得しました。現在のノードの親ノードを取得して、検証に失敗した現在のノードのパスを構築しようとしています
以下はコードスニペットです
c# - IDでXmlノードを取得する最速の方法は何ですか
XMLノードを取得するための最速の方法は何ですか?特定のノードを置き換える機能を必要とするアプリケーションがあります。ドキュメントが小さい場合は高速ですが、すぐに大きくなり、置換を行うのに数秒かかります。これが方法です。私はブルートフォース比較を行うだけで、そのシナリオでは非常に悪い結果になります。
c# - 内部xmlを削除せずに外部xmlノードを削除
これは私のxmlです:
<application>
ノードを削除せずにノードを削除するにはどうすればよい<test>
ですか?
c# - select single node が null の場合、単一ノードを作成する
構成ファイルを更新するプログラムがあります。たとえば、構成ファイルには次のものが含まれる場合があります。
この構成ファイルを更新するには、次を使用します。
さて、更新中に phoneNumber と address を更新したいと思います。アドレスは構成ファイルにある場合とない場合があります。
SelectSingleNode が null の場合、指定されたパスでノードを作成し、その値を設定したいと思います。
指定されたパスに値を持つノードを作成するにはどうすればよいですか?
c# - 新しい子ノードを既存の子ノードに追加する方法
車をトラックの子ノードにする必要があります。私はオンラインで調べて、いくつかの異なる方法を試しましたが、正しく動作させることができません。
これが私が生成したxmlファイルです。
ただし、これは予想される形式です。
これは、Xmlファイルを生成する私のメソッドです。メッセージの最初の行は他の場所で生成され、変更できないことに注意してください。
参考までに、これはAppendNewChildメソッドです。
xml - XmlNode.SelectNode 奇妙さ (2 つの非常に類似したノードの 1 つが見つからない)
ユーザーの選択に基づいて部品表を作成するために使用する、私が管理しているソフトウェアでバグに遭遇しました。これは、すべての部品番号と、エンジニアが行った選択に基づいてそれらの部品番号を選択するために使用される作成済みのルールを含む大きな xml ファイルで機能します。
今日、ある非常に特定の部分で、選択の約半分が機能し、残りの半分が機能しないことに気付きました。詳細は次のとおりです。
問題のルールのパラメーターに基づいて文字列を作成します。これらのパラメーターは、ユーザーの選択に基づいて設定されています。この文字列は XmlNode.SelectNode メソッドに渡されます。
以下に、xpath 文字列の 2 つの例を示します。1 つはノードを検出し、もう 1 つは検出しません。
A)
B)
最初の文字列 A はノードを返しませんが、2 番目の文字列 B は返します。これらの部品番号を含む xml データベースのセグメントは次のとおりです。
(これらのエントリから重要でないデータをいくつか削除して、ここで短く読みやすくしました。どちらの場合も、削除されたデータはほぼ同じで、違いはコスト/重量などだけです。)
ご覧のとおり、A と B の両方のエントリがデータ ファイルに含まれています。最も奇妙な部分は、さまざまなベアリング サイズのすべてでエラーを再現できたことです。検出されたものは、数値の小数部分に 2 桁の分子があり、検出されなかったものはありません。 find の分子は 1 桁です。これは単なる文字列であり、まったく問題にならないため、もちろん偶然である必要がありますが、これは私たちが持っているすべてのサイズに当てはまります.
私が持っているのはこれだけです。私は他の開発者の 1 人 (このプログラムの大部分を実際に書いた人) とこれを検討してきましたが、2 人とも途方に暮れています。誰かが考えている場合は、共有してください。また、私はここにいることができる限り徹底的にしようとしましたが、追加情報が必要な場合は喜んで追加します.
ありがとう。
編集:私はついにそれを理解しました。
わかりました、これは最終的に XmlNode.SelectNode 関数とは関係のない非常に奇妙なことになりました。
問題の XML ファイルは、.csv ファイルのコレクションからここで作成したカスタム ツールを使用してコンパイルされます。csv ファイルを使用すると、変更やそのような性質のものを作成する必要がある場合に、データを簡単に操作できます。
先に述べたように、それをコンパイルするツールもファイルを暗号化します。暗号化なしでコンパイルするバージョンもあります。
暗号化されていない状態で表示すると、問題のある行の「1 7/16」にスペースが 1 つありました
CSV ファイルをメモ帳で表示すると、スペースが 1 つありました。
CSVファイルをExcelで表示すると、列が一致するように2つのスペースが表示されました(Excelの書式設定、うーん)。
最後にコードを調べて、検索対象のメモリ内の実際の xml データを見たところ、「1 7/16」には 2 つのスペースがあり、もちろん一致することはありませんでした。
結局、直径データが入っているExcelのCSVファイルの列を数値形式からテキスト形式に変更して保存し、再コンパイルする必要がありました。CSV ファイルを再度開き、何も変更せずに保存すると、2 番目のスペースが再びそこに戻されます。
私はそれを修正しましたが、プログラムは動作しています。
ご回答いただきありがとうございます (特に xpathvisualizer ツールについては非常に便利です)。これは私の一日を焼き尽くした欲求不満の練習でした。
c# - XmlDocument.SelectSingleNodeはプレフィックスと名前空間を省略します
この質問は、回答された質問のフォローアップです: XmlDocument.SelectSingleNodeおよびプレフィックス+xmlNamespaceの問題
問題は、将来、受信したxmlの名前空間プレフィックスが警告なしに変更される可能性があることです。そのため、SelectSingleNodeを使用して要素のプレフィックスを省略する方法があるかどうかを知りたいと思います。
(着信xmlのすべてのプレフィックスを削除できることはわかっていますが、コードが提供されている場合は有効な回答と見なされますが、さらに多くの手順が必要になります...)
xpath - camel-context.xml で xpath を使用して、特定のノードが存在するかどうかを確認する方法
コンテンツ ベースのルーティング キャメル アプリケーションを開発しようとしています。このアプリケーションは、フォルダー src/data を調べて、 node を持つ SOAP 要求ファイルがあるかどうかを確認します<e2d:getOrderDetaiRequest>
。そのファイルは target/message にコピーされます。そうでない場合、ファイルは target/other にコピーされます。
xpath(または他のツール)を使用してその状態を確認する方法を知っていますか(camel-context.xmlファイルを使用することを好みます)?
これが私のキャメルコンテキストです
そして、ここに 2 つの異なる SOAP リクエストのサンプルがあります
と
android - NodeList の結果を取得するにはどうすればよいですか?
ノードの値をテキスト ビューに表示したいのですが、ノードの値を取得できません。国という名前の生のxmlファイルと、名前、アルファ2、およびダイヤルコードのタグが付けられたノードがあります。以下は私のコードです
このエラーが発生します
03-16 16:19:02.478: E/AndroidRuntime(369): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) で 03-16 16:19:02.478: E/AndroidRuntime(369): Android で。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 03-16 16:19:02.478: E/AndroidRuntime(369): android.app.ActivityThread.access$2300(ActivityThread.java:125) 03-16 16:19 :02.478: E/AndroidRuntime(369): android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 03-16 16:19:02.478: E/AndroidRuntime(369): android.os.Handler で。 dispatchMessage(Handler.java:99) 03-16 16:19:02.478: E/AndroidRuntime(369): android.os.Looper.loop(Looper.java:123) 03-16 16:19:02.478: E/ AndroidRuntime(369): android.app.ActivityThread.main(ActivityThread.java:4627) 03-16 16:19:02.478: E/AndroidRuntime(369): java.lang.reflect で。Method.invokeNative(ネイティブ メソッド) 03-16 16:19:02.478: E/AndroidRuntime(369): java.lang.reflect.Method.invoke(Method.java:521) 03-16 16:19:02.478: E /AndroidRuntime(369): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 03-16 16:19:02.478: E/AndroidRuntime(369): com.android.internal. os.ZygoteInit.main(ZygoteInit.java:626) 03-16 16:19:02.478: E/AndroidRuntime(369): dalvik.system.NativeStart.main(ネイティブ メソッド) 03-16 16:19:02.478: E /AndroidRuntime(369): 原因: java.lang.NullPointerException 03-16 16:19:02.478: E/AndroidRuntime(369): com.tester.NewTester.onCreate(NewTester.java:61) 03-16 16: 19:02.478: E/AndroidRuntime(369): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-16 16:19:02.478: E/AndroidRuntime(369): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 03-16 16:19:02.478: E/AndroidRuntime(369): ... 11 もっと見る