如何为以下内容编写 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 to 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