問題タブ [selectnodes]
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.
c++ - MSXML 選択ノードが機能しない
私は自動テストアプリに取り組んでおり、現在、同一である必要があるがそうではない可能性がある2つのXMLファイル間の値を比較する関数を作成中です。処理しようとしている XML のサンプルを次に示します。
<subreport>
(複数の要素があり、それらの中に複数の要素があることに注意してください<record>
。)
私が望むのは<value>
、2 つのドキュメントのタグを抽出し、それらの値を比較することです。その部分は私が行う方法を知っています。問題は抽出そのものです。
私は C++ で立ち往生しているので、MSXML を使用しており、データ形式を変更することにした場合に備えて、アプリが実際の XML 操作を抽象化できるようにするラッパーを作成しました。
そのラッパーである CSimpleXMLParser は、XML ドキュメントをロードし、その「トップ レコード」を XML ドキュメントのドキュメント要素に設定します。(CRecord は、そのサブクラスの 1 つである CXMLRecord を持つ抽象クラスであり、子レコードへの単独またはグループによるアクセスを提供し、Record の「値」へのアクセスも許可します (CXMLRecord の場合、子要素または属性の値) .) CXMLRecord には、MSXML::MSXMLDOMNodePtr と、CSimpleXMLParser のインスタンスへのポインターが含まれています。) ラッパーには、CXMLRecord が子レコードを返すために使用する、子を返すためのユーティリティ関数も含まれています。
私のコードでは、次のことを行います (<subreport>
機能するかどうかを確認するためだけにすべてのノードを返そうとします)。
これは常に false を返します。CXMLRecord::GetChildRecords() の実装の本質は基本的に
CSimpleXMLParser::SelectNodes() は次のとおりです。
実行すると、トップ レコードが確実に<report>
要素に適切に設定されます。子ノードの取得 (ラッパー経由ではなく、MSXML インターフェイス経由) やその名前など、あらゆる種類の処理を実行できます。アプリの別の場所で解析のために使用しているため、ラッパーが機能することはわかっています。 XML 構成ファイルであり、問題なく動作します。
XPath クエリ式で何か間違ったことをしているのかもしれないと思いましたが、考えられるすべての順列は喜びを与えません。このXML ファイルを処理しようとすると、MSXML::IXMLDOMNodeListPtr
返されるIXMLDOMNodePtr::SelectNodes()
は常に長さ 0 です。
これは私を夢中にさせています。
c# - XMLをさらに深くナビゲートし、その中にデータを追加するにはどうすればよいですか?
XmlDocumentをメモリにロードし、新しいXmlElementを作成しました。XmlElementをパス/report/ section / hostsに追加しようとしていますが、方法がわかりません。XMLのルートノードの下に簡単に追加できますが、XMLのより深いレベルに移動して、そこに追加する方法がわかりません。疑似で私はこれを行おうとしています:
doc.SelectNodes( "/ report / section / hosts")。AppendChild(subRoot);
コード:
c# - XmlNode.SelectNodes の基本?
なぜこれが機能しないのかわかりません。
既知の形式の XmlNode があります。それは:
patternという変数にノードへの参照があります。上記の [block-of-xml-to-process] で表されるノードの反復可能なコレクションが必要です。ブロックの名前と構造は、現時点では不明です。[設定名] はわかっています。
これはかなり簡単に思えます。ブロックを指す XPATH 式を 6 つ思いつくことができます。私はもう試した:
しかし、XPATH の基本的な理解や .SelectNodes の特別なトリックが不足しているようです。
私は何を間違っていますか?
vb.net - For Each ループ内の XML 要素の位置を取得する
このループで XML 要素の位置を取得するにはどうすればよいですか?
私が出力に欲しいのは次のようなものです
1 2 3 4 ....
dom - 複数の代替パスでselectNodesを使用するか、2〜3のIXMLDOMNODELISTを組み合わせます
私が書いている次のVBScriptスクリプトを誰かが手伝ってくれるかどうか疑問に思っています。
これに似た何かをすることはできますか?
Set obj = something.selectNodes(path1、path2、path3)//どちらのパスとも一致しますか?
または、そうでない場合は、selectNodesが返すもの(IXMLDOMNodeList)を組み合わせる方法はありますか?例えば
Set obj1 = something.selectNodes(path1)Set obj2 = something.selectNodes(path2)
obj3 = obj1+obj2を設定します
よろしくお願いします
c# - XmlNodeList(なぜこれが空なのか)
このNodeListが空である理由がわかりません
ここでXmlFile
最終スクリプトでは、すべての属性を含む配列文字列を取得したいと思います。
ありがとうステファン
vb.net - Atom/RSS の抽出方法
URL に RSS ノードがある場合は、データベースに追加します。
例えば:
このURLのrssDoc.SelectNodes("rss/channel/item").Count
は 0 より大きいです。
しかし、atom url の場合、rssDoc.SelectNodes("rss/channel/item").count
はゼロに等しくなります。
Atom/RSS URL にノードがあるかどうかを確認するにはどうすればよいですか? を試してみましrssDoc.SelectNodes("feed/entry").Count
たが、カウントがゼロです。
終了機能
c# - XMLからの属性の取得
なぜこのコードを実行するのですか...
コマンドプロンプトで次の出力を生成しますか?
つまり、attributes.Count
1を返す必要はありませんか?
c# - 複数の属性を持つ XmlNode.SelectNode
私のxmlファイルのノードの1つは次のとおりです。
私が使用しているコードは -
検索する属性として search_id と login_id を受け入れる select ノードを使用したいですか? search_id または email_id のいずれかが間違っている場合は、null を返したいです。どうすればこれを行うことができますか?
ありがとう。カピル。
html - SelectNodes および GetElementsByTagName
SelectNodes と GetElementsByTagName の主な違いは何ですか。