私のxsltには、C#コードがあります。
public string CleanForTableTags(string pContent){
string input = String.Concat("<root>", pContent, "</root>");
System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Parse(input, System.Xml.Linq.LoadOptions.PreserveWhitespace);
var valueWithinTags = doc.Root.Element("table").ToString();
string[] values = Regex.Matches(valueWithinTags, @"<.*?>")
.Cast<Match>()
.Select(o => o.Groups[0].Value)
.ToArray();
System.Guid d = System.Guid.NewGuid();
string s = pContent.Replace(valueWithinTags, d.ToString());
return s;
}
あなたが見ることができるように私は使用します:System.Xml.Linq
私のwebconfigiveで得た:
<compilation debug="true">
<assemblies>
<add assembly="WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
</compilation>
そしてまだ私は得ています:
タイプまたは名前空間の名前「Linq」が名前空間「System.Xml」に存在しません(アセンブリ参照がありませんか?)
私は何が間違っているのですか?
私はVS2008を使用しています。DLLへのすべてのパスは正しいです。クラスから同じコードを使用すると問題なく動作しますが、xslt内で使用するとすぐに、エラーが発生します。
次の問題:
今、その失敗
string[] values = Regex.Matches(valueWithinTags, @"<.*?>")
.Cast<Match>()
.Select(o => o.Groups[0].Value)
.ToArray();
'System.Text.RegularExpressions.MatchCollection' does not contain a definition for 'Cast' and no extension method 'Cast' accepting a first argument of type 'System.Text.RegularExpressions.MatchCollection' could be found (are you missing a using directive or an assembly reference?)