国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

利用Dom操作字符串一例

2024-07-10 13:24:22
字體:
供稿:網(wǎng)友
有時對字符串的處理可以利用Dom模式,例如下面字符串:

<a1>a1的值</a1><a2>a2的值</a2><a3>a3的值</a3><a4><b4>b4的值</b4></a4>

要將b4元素的值修改為“修改后的b4“。

除了用正則的方法外,還可以考慮Dom操作,下面分別用XmlDocument類和HtmlAgilityPack操作。

方法1,用XmlDocument類:

復(fù)制代碼 代碼如下:


XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<xml>" + s + "</xml>");
xmlDoc.SelectSingleNode(@"http://b4").InnerText = "修改后的b4";
Response.Write(Server.HtmlEncode(xmlDoc.DocumentElement.InnerXml));


上面第二句是關(guān)鍵,由于源字符串可能缺少唯一的根元素,如本例,所以在外層包裹一對標(biāo)簽就可以將其轉(zhuǎn)化為合法的xml文檔,然后修改后的源文本用xmlDoc.DocumentElement.InnerXml取出。當(dāng)然方法1僅限于源文本近似于xml且比較規(guī)范的場合。

方法2,用HtmlAgilityPack:

復(fù)制代碼 代碼如下:


string s = @"<a1>a1的值</a1><a2>a2的值</a2><a3>a3的值</a3><a4><b4>b4的值</b4></a4>";
HtmlDocument hxmlDoc = new HtmlDocument();
hxmlDoc.LoadHtml(s);
hxmlDoc.DocumentNode.SelectSingleNode(@"http://b4").InnerHtml = "修改后的b4";
Response.Write(Server.HtmlEncode(hxmlDoc.DocumentNode.InnerHtml));


無須用標(biāo)簽包裹,因為即使沒有唯一根元素,HtmlAgilityPack仍能正常解析。

以上兩種方法啟示我們對于數(shù)據(jù)量不太大、執(zhí)行效率要求不太高的數(shù)據(jù),可以自行組織成標(biāo)簽的形式,在程序中使用,也可以存放在文本文件中。相應(yīng)的讀取寫入操作是比較方便的。讀者可以對Dom操作涉及的類和成員做進(jìn)一步封裝,簡化相應(yīng)操作。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 拉萨市| 米易县| 江油市| 襄樊市| 穆棱市| 梓潼县| 平遥县| 雷波县| 崇文区| 通榆县| 金坛市| 临桂县| 广元市| 利津县| 黄梅县| 墨竹工卡县| 辉县市| 且末县| 太仓市| 柯坪县| 彭州市| 佳木斯市| 辉县市| 二手房| 石嘴山市| 田东县| 太和县| 遂溪县| 孟连| 农安县| 光山县| 蕲春县| 盘山县| 苏尼特右旗| 河池市| 花莲市| 松溪县| 茂名市| 神农架林区| 临江市| 垦利县|