我有大批手动更新的XHTML文件.在更新的审查阶段,我想以编程方式检查文件的格式.我目前正在使用XmlReader,但平均CPU所需的时间比我预期的要长得多.
XHTML文件的大小范围为4KB到40KB,每个文件的验证需要几秒钟.检查是必不可少的,但我希望尽可能缩短时间,因为在将文件读入下一个流程步骤时执行检查.
有没有更快的方法来进行简单的XML格式检查?也许使用外部XML库?
我可以确认使用XmlReader验证"常规"基于XML的内容是快速的,并且正如所建议的那样,问题似乎与每次验证文件时读取XHTML DTD的事实有关.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
请注意,除了DTD之外,还会下载相应的.ent文件(xhtml-lat1.ent,xhtml-symbol.ent,xhtml-special.ent).
由于完全忽略DTD并不是XHTML的真正选择,因为良好的格式与允许的HTML实体紧密相关(例如,当我们忽略DTD时,会立即引入验证错误).
通过使用建议的自定义XmlResolver,结合DTD和实体文件的本地(嵌入)副本,解决了该问题.
一旦我清理了代码,我就会在这里发布解决方案
Linq是否包含在.net 2010中,即.NET 4.0
在FLEX应用程序中,我正在尝试"重新发送"自定义事件.即component1执行dispatchEvnet(event),component2注册事件的处理程序,处理程序的唯一功能是dispatch(event).最后,component3侦听来自component2的事件.我想要做的是类似于"重新抛出"异常的概念(和类似的原因).不同之处在于重新分派似乎在AS3(Flash 10)中不起作用.在IE中,没有任何反应,在FF3中有一个例外,说在调用component3中的处理程序时尝试将Event类型强制转换为我的CustomEvent时类型转换失败.调试器中的跟踪代码显示,在调用component3时,事件确实是一般事件,我的所有自定义内容都丢失了.应该是这样吗?
确定字符串是否代表网址的最佳方法是什么?我需要让用户在表单中输入网址,但如何验证输入?应允许用户输入" http://www.google.com "或"www.vg.no" 等字符串,但不应要求他输入"http://".此外,有像"tv2.no"这样的网页更难以验证.如果我检查字符串是否包含"www"或"http://"我有一个强有力的线索,但我仍然不是100%肯定.我能100%肯定吗?我不这么认为,但也许SO的一些优秀思想能够启发我吗?
如果在属性的setter中有这个:
decimal? temp = value as decimal?;
Run Code Online (Sandbox Code Playgroud)
value ="90"
但演员表演后,临时为空 ......
做这个演员的正确方法是什么?
我正在努力学习或生成任何代码来学习字符串day("26.02.2009")--->给我"星期三"
我需要在C#中使用静态日期函数.
例如:
datetime Str_day= Returnstringdate("09.02.2009"); ---->Str_day="Monday";
Returnstringdate("09.02.2009")
{
it must return Monday!!!
}
Run Code Online (Sandbox Code Playgroud)
要么
Returnstringdate("09.02.2009 12:30:32")
{
it must return Monday!!!
}
Run Code Online (Sandbox Code Playgroud) 我有这个枚举:
[Flags]
public enum ExportFormat
{
None = 0,
Csv = 1,
Tsv = 2,
Excel = 4,
All = Excel | Csv | Tsv
}
Run Code Online (Sandbox Code Playgroud)
我试图在这个(或任何,真正的)枚举上做一个包装,它通知变化.目前它看起来像这样:
public class NotifyingEnum<T> : INotifyPropertyChanged
where T : struct
{
private T value;
public event PropertyChangedEventHandler PropertyChanged;
public NotifyingEnum()
{
if (!typeof (T).IsEnum)
throw new ArgumentException("Type T must be an Enum");
}
public T Value
{
get { return value; }
set
{
if (!Enum.IsDefined(typeof (T), value))
throw new ArgumentOutOfRangeException("value", value, "Value not …Run Code Online (Sandbox Code Playgroud) 代表们如何在幕后工作?如何有效地使用它们?
编辑:我知道他们如何在表面上工作(它们基本上是函数指针,并允许使用其地址调用某些签名的回调方法).我需要知道的是CLR如何在内部实际实现它们.在定义委托时以及使用委托对象调用回调方法时,幕后究竟发生了什么?
鉴于每个软件项目只有如此多的程序员专用时间,您将花多少钱来确保产品向后兼容以前的版本?实际上有几点需要考虑:
背景:我有一个小的Python应用程序,让开发人员在我们公司发布软件的生活更轻松一些.我使用py2exe为Windows构建可执行文件.应用程序以及二进制文件都会检入Subversion.人们只需从SVN检出目录即可进行分发.该程序有大约6种不同的Python库依赖项(例如ElementTree,Mako)
情况:开发人员希望破解此工具的来源,然后在不必构建二进制文件的情况下运行它.目前这意味着他们需要一个python 2.6解释器(这很好),并且还使用easy_install在本地安装了6个库.
问题
轶事:这个过程越独立,就越容易重复.我让我的机器更换为新机器,并经历了不必要的过程,不得不对依赖项进行逆向工程,重新安装distutils,在线搜索库并让它们安装(参见上面的公司互联网限制).
c# ×5
.net ×2
.net-4.0 ×1
actionscript ×1
apache-flex ×1
casting ×1
constraints ×1
date ×1
datetime ×1
delegates ×1
deployment ×1
enums ×1
events ×1
html ×1
layout ×1
linq ×1
nullable ×1
python ×1
url ×1
well-formed ×1
xml ×1