
お世話になります。
立て続けで大変恐縮なのですが、
HtmlAgilityPackを用いて、特定のノードの
AttributesにAddメソッドで追加した後、
OuterHtmlで吐き出すと、追加した属性の値が
必ず「"」でくくられますが、これを「'(シングル)」で
くくって出力させる設定はありましたでしょうか。
最終的にReplaceしてしまえば構わないとは
思うのですが、かっこ悪いし、設定などでできるので
あればと思い、質問いたしました。
メソッドか何かで、あれば教えてください。
なければ「ない」と教えてください。
No.2ベストアンサー
- 回答日時:
ソースを見て回答します。
HtmlNode.cs、HtmlAttrribute(Collection).csを見る限り、難しそうです。メソッド、コンストラクタともに標準では提供されていないため、独自にクラスを継承、(必要ならばオーバライド)するなどして作成するしかないためです。理由はHtmlAttribute,csにて、初期値を設定する際に、ダブルクオーテーションで作成するよう定義されており、属性を新規作成する際に、独自のHtmlAttributeを設定する手段も提供されていないためです。
また、HtmlAttributeメソッドのコンストラクタは、QuoteTypeプロパティ(”または’)を設定する方法を提供していませんし、
HtmlAttributeColletionクラスも属するHtmlAttribute型インスタンスのQuoteTypeの一括変更を行うメソッドを提供していません。
実現はできたそうなので、独自に、一括してリプレースするメソッドを定義する方法が考えられます。
何度も丁寧に教えていただき、本当にありがとうございました。
とりあえずは、OuterHTMLで出力する際に、一つ一つ変換させる
方法で対処いたしました。
本当に何度もありがとうございました。
また何かありましたら、よろしくお願いいたします。
No.1
- 回答日時:
HttpAttribute.QuoteTypeプロパティがあります。
AttributeValueQuote.SingleQuote
AttributeValueQuote.DoubleQuote のいずれかを指定します。
デフォルト値はDoubleQuoteです。
HTMLを文字列として得る前に
htmlnode.HtmlAttibuteCollectionプロパティでHtmlAttibuteCollectionを取得し(リストです)、
そのリストに含まれるQuoteTypeプロパティを全て変更します。HtmlNodeからは、それ以外に変更の契機が見当たりません。
その他には、HtmlAttributeCollection.Addメソッドに用いて、定義済みのHtmlAttribute型のインスタンスを追加する方法があります。
あるいはHtmlAttibuteCollection.AttributesWithName(属性名)でHtmlAttibuteのインスタンスを取得して、QuoteTypeプロパティを設定する方法です。
この回答への補足
またまた回答、ありがとうございます。
教えていただいた方法で、できるようにはなったのですが、
やはりどうしても「個別」で行うしかないのでしょうか。
Html全体の設定を、まとめて変更できるメソッド(または
プロパティ)があればと思ったのですが…。
foreachなどて走査しつつ、それぞれに設定…といった方法しか
ないのでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- iPhone(アイフォーン) iPhone/iPadの標準メールアプリでのアカウント新規登録について pop/imap選択 1 2023/06/22 08:00
- その他(ソフトウェア) Unity Remoteを使う手順 1 2023/06/21 14:26
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- プリンタ・スキャナー 富士通パソコン プリンターがオフラインになる 2 2023/05/23 22:02
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
- その他(ブログ) Brogger独自ドメインから独自ドメインへ変更する 1 2022/09/22 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
vb.net フォームアプリケーシ...
-
VB.NET スプラッシュスクリー...
-
男性に対して、『女性への気遣...
-
「ご処理進めて頂きますようお...
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
エクセルVBAで、MsgBox やInput...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
お家デートをしててハグを長い...
-
「PC Helpsoft Driver Updated...
-
IDEのHDDをつけるとWindowsが起...
-
VBA エンターキーでイベントに...
-
UPS警告音を止めたい
-
switch の範囲指定
-
EXCEL VBA 複数のImageコントロ...
-
Accessでフォームから別フォー...
-
findは動くがfindnextがマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
VB.NET スプラッシュスクリー...
-
C#のインスタンスを参照渡ししたい
-
フィールド(メンバ変数)のプリ...
-
どういうプログラムで組みます...
-
vb.net フォームアプリケーシ...
-
DLL内のイベントをハンドリング
-
Try~Catch、Finallyについて。
-
コールバックでイベントを使う...
-
Pythonについて 関数の仮引数に...
-
C# HAPで属性を追加後、OuterText
-
objective-Cについてご相談があ...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
-
VBA エンターキーでイベントに...
おすすめ情報