3
我有些情況下,我的客戶端向我發送一個html字符串,其元素屬性結構不正確。就像這樣:將雙引號內的雙引號替換爲html屬性
<img src="../imgTest.jpg" alt="Something "quoted here, or here"">
我怎樣才能動態改變這些情況下,以這樣的未來?
<img src="../imgTest.jpg" alt="Something 'quoted here, or here'">
我需要這個html不顯示在瀏覽器上,但要做一些操作。
我使用HtmlAgilityPack控制HTML的問題,但對於這些情況下,它改變了我的html字符串這一點,它是不是我想要的:
<img src="../imgTest.jpg" alt="Something" quoted="" here,="" or="" here="">
我與HtmlAgilityPack代碼:
var htmlDoc = new HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
htmlDoc.LoadHtml(myHtmlStr);
var htmlError = htmlDoc.ParseErrors.SafeAny();
if (!htmlError)
myHtmlStr = htmlDoc.DocumentNode.InnerHtml;
嗯,恐怕沒有正則表達式的解決方案,這將看起來不錯,安全。試試['(?<= <\ w + \ s [^ <] *)(?<!\ w + =)「(?!\ s * /?> | \ s + \ w + =」)'](http:/ /regexstorm.net/tester?p =(%3F%3C%3D%3C%5CW%2B%5CS%5B%5E%3C%5D *)(%3F%3C!%5CW%2B%3d)的22%( %3F!%5CS *%2F%3F%3E%7C%5CS%2B%5CW%2B%3D%22)I =%3cimg + SRC%3D%22%..%2fimgTest.jpg 22 + ALT%3D% 22%+%22quote + here%2c +或+ here%22%22%3e&r =%27)並替換爲'''。 –
你的html片段是否像你的例子中的img一樣是單個元素?它總是具有相同的屬性,它們被破壞了嗎? –
你可以嘗試像['(= \ s *「[^ =」>] *)「([^ =」>] *)「([^ =」>] *「)'](https:// regex101.com/r/iK0wN9/2),並用'$ 1'$ 2'$ 3'替換,這不是非常可靠:> –