問題タブ [linq-to-xml]
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.
xml - 属性に基づいて XElement を削除する
私はまだxmlで遊んでいます。今、私は次のようなファイルを持っています:
合計 300 個の属性ノードがあり、そのほとんどは必要ありません。私がやりたいのは、id 属性に指定された値を持たないすべての属性ノードを削除することです。約 10 個の値を持つ文字列配列を作成しました。これらの値は、xml に保持したい属性を表しています。残りは削除したいと思います。
以下のコードでやろうとしているのは、使用したくないすべての属性ノードを削除して xml を変更することです。
何らかの理由で、私のコードが機能しません。不要な属性ノードは削除されません。
どうしたの?ID 属性値が文字列配列のどの数値とも一致しない属性ノードを削除するにはどうすればよいですか?
前もって感謝します。
PS - 私の問題を説明する際に、自分自身を明確にしていただければ幸いです。
c# - Linq-To-Xml などを使用する場合の null 参照の処理
たとえば、LinqToXML を使用している場合など、(多くの) null 参照を処理するためのより良い/より短い方法はありますか?
私はそれを非常にうまく処理する XElement の拡張機能を書きましたが、別の方法があるのでしょうか?
そして、関数名はどうですか?「そして」は実際には説明的ではありません。
PS: この例で XPath を使用できることはわかっていますが、より複雑なケースでは常にそうとは限りません。
.net - LINQ-to-XML で要素を検索または作成する
既に存在するかどうかに関係なく、要素の値/子を設定したいと考えています。要素が存在しない場合は、自動的に作成したいと考えています。
このように、私のコードは要素の内容についてのみ心配する必要があります...それが既に存在するかどうかではありません。(私がそれをやり終える頃には、存在することが保証されています)。
この機能は既に LINQ-to-XML に存在しますか? 私はまだそれを見つけていないので、独自の方法を書くことを検討しています。
encoding - XMLファイルのエンコーディングを最もよく検出する方法は?
任意のエンコーディングで XML ファイルをロードするには、次のコードを使用します。
これは機能しますが、ファイルを 2 回開くのは少し効率が悪いようです。私ができるようなエンコーディングを検出するより良い方法はありますか:
- ファイルを開く
- エンコーディングを検出する
- XML を XElement に読み込む
- ファイルを閉じる
c# - 次のコードに相当する LINQ to XML は何ですか?
次のコードの XML に相当する Linq は何ですか:
c# - Linq to Xml クエリに対する属性を最適化するにはどうすればよいですか?
次の Xml フラグメントがあるとします。
次のコードで作成できます。
これは、r 属性が 2 である行を見つけるための最良の方法ですか? これは機能しますが、select ステートメントで Where 句を繰り返しています。より良い方法とより効率的な方法があるかどうか疑問に思っています。
一般に、Linq to Xml クエリが最適化されているかどうかを判断する最良の方法は何ですか?
linq-to-xml - LINQ over XML: 最上位の親を見つける
XDocument をトラバースするために C# と LINQ を使用しています。
次のような XML があるとします。
ここで、ID 3 を持っていて、その ID を持つ要素を見つけることができたとしましょう。この時点で、最上位の親ノード (ルートの 1 レベル下にある親) の ID を見つけたいと思います。この例では、ID 1 の要素を見つけたいと考えています。これを行うことができます。
myElement.Parent.Parent
しかし、それが何レベル上がるかわからないので、おそらく再帰が必要です。ただし、XDocument が前方のみで読み取られたことを思い出します。親を再帰的に見つけるのはどれくらいコストがかかりますか? これを行う最善の方法は何ですか?
私の XML ファイルは最大 500k の大きさになる可能性があります。