簡體   English   中英

替換xml文檔中的字符串

[英]Replace string in xml document

如何為編寫xpath表達式:

 <script src="../../Scripts/ex.js"></script>

它將匹配src值( ../../Scripts/ex.js )。 因為我想讓../../Scripts與其他一些字符串相對應。

您可以使用以下代碼。

 TextReader tr = new StringReader(response);
    XElement xelement = XElement.Load(tr);
    var Script = xelement.Descendants("script").ToList();
    if (Script.Count() > 0)
    {
     Script.First().Attribute("src").Value = "../../Scripts/NewEXWithReplace.js";

    }

您還可以使用HtmlAgilityPack,它可以使您有用地訪問Codeplex工具的屬性。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(@"<script src="../../Scripts/ex.js"></script>" />");

foreach (var script in doc.DocumentNode.Descendants("script"))
{

    script.Attributes["src"].Value = "loading.gif";
}

另一種方法是使用linq到xml

LINQ轉XML

var xdocument = XDocument.Load("XMLFile1.xml"); // you can use Parse or whatever
var elements = xdocument.XPathSelectElements("//script[@src='../../Scripts/ex.js']");
foreach (var element in elements)
{
  element.Attribute("src").SetValue("foo");
}

我知道您說過您想要一個XPath表達式,但是簡單的字符串替換呢?

例如

string s = "<script src=\"../../Scripts/ex.js\"></script>";
string newS = s.Replace("../../Scripts", "../../Scripts2"); // Or whatever you want to replace it with

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM