0

の xpath 式の書き方:

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

これは src 値 ( ../../Scripts/ex.js) と一致します。../../Scripts他の文字列とリレースしたいからです。

4

4 に答える 4

2

次のコードを使用できます。

 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";

    }
于 2012-08-29T08:19:37.390 に答える
1

コードプレックス ツールで属性に便利にアクセスできる HtmlAgilityPack を使用することもできます。

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 を使用することです

于 2012-08-29T08:18:59.767 に答える
1

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");
}
于 2012-08-29T08:20:15.517 に答える
0

XPath 式が必要だとおっしゃいましたが、単純な文字列の置換はどうでしょうか。

例えば

string s = "<script src=\"../../Scripts/ex.js\"></script>";
string newS = s.Replace("../../Scripts", "../../Scripts2"); // Or whatever you want to replace it with
于 2012-08-29T08:12:05.030 に答える