将来追加/削除/名前変更/移動される可能性のある約50のXHTMLページのインデックスを作成する必要があることに気付いたとき、「問題ありません。LINQtoXMLを使用してクイックインデックスジェネレータを作成します。 XHTMLは間違いなくXMLとしてカウントされます」。
もちろん、実行してみるとすぐに、XLINQが などのXHTMLエンティティでチョークするという事実に気付きました。私は次のアルゴリズムを使用してそれを回避しました:
- XHTMLファイルを文字列に読み込みます。
- 正規表現検索を使用し、その文字列を置換して、関連するすべてのエンティティを定義するセクションをDOCTYPEに追加します(読み取ったファイルの「title」属性のみを考慮し、出力ファイルは現在エンティティを使用していないため、それらをすべて空白に設定しますが、後で実際の値を追加する場合があります)。
- 結果をXDocumentに解析します。
ファイルを保存するには、反対のことをします。
- XDocumentを文字列に保存します。
- エンティティ定義を取り除きます。
- ファイルに保存します。
私の質問は、XHTMLファイルをXDocumentsに読み込むために使用できるライブラリ(特に組み込みの.Netライブラリ)はありますか?私が書いたコードはその目的(現在のインデックスを生成し、ジェネレータープログラムの残りの部分をテストすること)を達成しました。他の誰かがすでに同じことを書いてテストしている場合は、テストに時間をかけたくないと思います。
リアさん、ありがとうございました
。
編集:どうもありがとうございました。これはうまくいきます!XHTMLを保存するときはまだ少し文字列処理を行う必要があり(ライブラリは実際にはそのために作成されていないと思います:))、CDATAセクションを無差別に貼り付けないようにするためにAgilityPackのソースを少しいじる必要がありましたすべてのスタイル属性の内部の周り(すでに1つ存在している場合でも)ですが、それがオープンソースのポイントですよね?