コンテクスト:
このサービスでクエリの結果を解析していますが、結果を含むHTMLが混乱しています。
私の目標は、このクエリの結果として表示される各「属性と値」を使用して「KeyValue」ペアを作成することです。
現時点では、それを解決するための1つの方法しか思い浮かびませんでした。
解析のロジック:
- すべての属性ノードを選択します
- すべての値ノードを選択します
- キーと値のペアを構築するために構築された各コレクションの「インデックス」を一致させます
例:Attribute [0] with Value [0]->(このサービスでは、「CNPJ」と「12.272.084 / 0001-00」になります)。
問題:
すべての属性ノードをフェッチするXPath式を見つけることができました。
attrNodes = htmlDoc.DocumentNode.SelectNodes ("//td[@bgcolor='#f1f1b1']/*/font[@face='Verdana']");
Htmlでレンダリングしたときに実際には同じように見えるノードの種類が異なるため(たとえば、「b」と「strong」)、値ノード用のノードも見つけることができませんでした。
階層が異なるノードでさえ、XPathでワイルドカード( "*")を使用して解決することができませんでした(たとえば、単一のタグまたは2つのタグがネストされています)
私の目標:
- XPathを記述して、値を持つノードの異なるサブセットに到達します
- すべてのノードを単一のコレクションに配置します
- Html内の各ノードの位置に基づいて、このコレクションのノードを並べ替えます(HTMLで最初に表示されるノードは、リストの先頭になります)
どうすれば目標を達成できますか?
HTMLサンプル:
こちらで確認できます
または、CNPJテキストボックスに「 : 12272084000100 」と入力し、[Pesquisar]をクリックして、サービスを自分で照会します。その後、「CompanhiaEletricadeAlagoas」というテキストをクリックするだけです。
前もって感謝します