我本质上想要抓取我的本地站点并创建所有标题和URL的列表,如下所示:
http://localhost/mySite/Default.aspx My Home Page http://localhost/mySite/Preferences.aspx My Preferences http://localhost/mySite/Messages.aspx Messages
我正在运行Windows.我对任何有效的东西都开放 - 一个C#控制台应用程序,PowerShell,一些现有工具等.我们可以假设标签确实存在于文档中.
注意:我需要实际捕获文件,因为标题可能是在代码而不是标记中设置的.
我使用jQuery Cookie插件(下载和演示以及带注释的源代码)来设置和读取cookie.我正在我的本地机器上开发页面.
以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie.但如果浏览器是谷歌浏览器并且该页面是本地文件,则它不起作用.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Run Code Online (Sandbox Code Playgroud)
我所知道的:
因此,Cookie仅针对本地文件上的Google Chrome失败.
可能的原因:
任何人都可以确认这一点并确定根本原因吗?
鉴于以下XML代码段,我需要获取DataElements下每个子项的名称/值对列表.XPath或XML解析器不能用于我无法控制的原因,因此我正在使用正则表达式.
<?xml version="1.0"?>
<StandardDataObject xmlns="myns">
<DataElements>
<EmpStatus>2.0</EmpStatus>
<Expenditure>95465.00</Expenditure>
<StaffType>11.A</StaffType>
<Industry>13</Industry>
</DataElements>
<InteractionElements>
<TargetCenter>92f4-MPA</TargetCenter>
<Trace>7.19879</Trace>
</InteractionElements>
</StandardDataObject>
Run Code Online (Sandbox Code Playgroud)
我需要的输出是:[{EmpStatus:2.0},{支出:95465.00},{StaffType:11.A},{Industry:13}]
DataElements下的标记名称是动态的,因此无法在正则表达式中按字面表示.标签名称TargetCenter和Trace是静态的,可以在正则表达式中,但如果有办法避免硬编码,那将是更好的选择.
"<([A-Za-z0-9]+?)>([A-Za-z0-9.]*?)</"
Run Code Online (Sandbox Code Playgroud)
这是我构造的正则表达式,它的问题是它在结果中错误地包含{Trace:719879}.依赖于XML中的换行或任何其他明显的格式不是一种选择.
下面是我正在使用的Java代码的近似值:
private static final Pattern PATTERN_1 = Pattern.compile(..REGEX..);
private List<DataElement> listDataElements(CharSequence cs) {
List<DataElement> list = new ArrayList<DataElement>();
Matcher matcher = PATTERN_1.matcher(cs);
while (matcher.find()) {
list.add(new DataElement(matcher.group(1), matcher.group(2)));
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
如何将我的正则表达式更改为仅包含数据元素并忽略其余部分?
我使用以下正则表达式从文本中获取URL(例如"this is text http://url.com/blabla possibly some more text").
'@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@'
Run Code Online (Sandbox Code Playgroud)
这适用于所有的网址,但我只是发现了它不为缩短的URL一样工作:"blabla bla http://ff.im/-bEnA blabla"成为http://ff.im/赛后.
我怀疑它与-斜线后的破折号有关/.
我无法让Silverlight 2.0按照我想要的方式布置文本.我希望带有换行符和嵌入式链接的文本,包装,就像网页中的HTML文本一样.
这是我最接近的:
<UserControl x:Class="FlowPanelTest.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls"
Width="250" Height="300">
<Border BorderBrush="Black" BorderThickness="2" >
<Controls:WrapPanel>
<TextBlock x:Name="tb1" TextWrapping="Wrap">Short text. </TextBlock>
<TextBlock x:Name="tb2" TextWrapping="Wrap">A bit of text. </TextBlock>
<TextBlock x:Name="tb3" TextWrapping="Wrap">About half of a line of text.</TextBlock>
<TextBlock x:Name="tb4" TextWrapping="Wrap">More than half a line of longer text.</TextBlock>
<TextBlock x:Name="tb5" TextWrapping="Wrap">More than one line of text, so it will wrap onto the following line.</TextBlock>
</Controls:WrapPanel>
</Border>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
但问题在于虽然文本块tb1和tb2将会进入同一行,因为它们有足够的空间完全存在,但是tb3以后不会在前一个块的同一行开始,即使它将包裹到下一行.
我希望每个文本块在同一行上从前一个文本块结束.我想在某些文本上放置click事件处理程序.我还想要段落休息.基本上我正在努力解决Silverlight 2.0的XAML子集中缺少FlowDocument和Hyperlink控件的问题.
回答答案中提出的问题:
为什么不使用不可点击文本的运行?如果我只在可点击的文本上使用单独的TextBlocks,那么这些文本仍然会受到上面说明的包装问题的影响.而TextBlock就在链接之前,而TextBlock就在之后.基本上所有这一切.看起来我没有很多机会在同一个TextBlock中放置多个运行.
使用RegExs和循环将链接与其他文本分开根本不是问题,问题是显示布局.
为什么不将每个单词放在WrapPanel中的单个TextBlock中除了是一个丑陋的黑客之外,这对于换行没有好处 - 布局不正确.
它还会使链接文本的下划线样式变成虚线.
这是一个示例,其中每个单词都在自己的TextBlock中.尝试运行它,请注意,换行符根本没有显示在正确的位置.
<UserControl x:Class="SilverlightApplication2.Page" …Run Code Online (Sandbox Code Playgroud) 将VB.NET winforms应用程序移植到C#有什么"好"的资源吗?我确信有软件只是翻译代码,但我希望同时重构代码.保持它当前的形式是有问题的,因为它使用VB.NET允许的一些"糟糕的设计"实践,并且将进一步使未来的维护变得复杂.这里有没有人经历过这个过程,你是怎么做的?你使用翻译/重构方法了吗?您是否只是使用最终产品来重新创建功能而不查看大部分当前的代码库?你(集体)推荐什么?
更新:
正如我告诉Grauenwolf一样,用当前语言保留它会出现以下问题:
对于任何投票问题的人,我不确定你为什么这样做; 关注的不是我是否应该将其留在VB.NET中; 关注的是现在没有移植它的未来成本是多少.如果我要花很多钱来修复它,那么为什么不采取额外步骤并使其可以为未来的程序员维护?
作者注:我多年没有看过这个问题,最近有回复,所以我把'回答'移到了问题中并删除了'回答'(因为它不是真的答案).
当我使用Bitmap :: FromHBITMAP函数创建新的Gdiplus :: Bitmap时,生成的Bitmap是不透明的 - 没有保留原始HBITMAP的部分透明度.
有没有办法从HBITMAP创建一个带来alpha通道数据的Gdiplus :: Bitmap?
我知道 ASP.NET 有一个全局处理程序 Application_EndRequest 处理程序,我可以在其中更改 Context.Response.StatusCode,并将其设置为 200,这是我的愿望。
现在有了 asmx Web 服务,我不太确定应该把这个逻辑放在哪里。我知道我绝对对编写 ISAPI 过滤器不感兴趣,而且我并没有真正在 ASP.NET 环境中运行,所以 HTTPModule可能对我来说也没什么用。
有什么建议。在 WCF 中运行它会为我提供一种在 Web 服务上设置它的更简单的机制吗?
我有一个应用程序,我需要用户上传照片.将照片上传到服务器后(不应该花很长时间),用户应该回复一个常规HTML页面的响应"谢谢... bla bla bla ..."
现在,在响应发送之后回到客户端,他继续他的快乐方式,我希望服务器继续处理这张照片.它需要做一些沉重的事情并且需要很长时间.但这没关系因为用户没有等待任何事情.他可能在另一页.
所以我的问题是,我如何使用ASP.NET做到这一点.我正在编写的应用程序是在ASP.NET MVC中,所以我想象的东西
//save the photo on the server
//and send viewdata saying "thanks..."
return View();
//keep doing heavy processing on the photo
Run Code Online (Sandbox Code Playgroud)
但我想这不是真的如何完成.此外,由于有时我使用ASP.NET WebForms,这也是如何使用WebForms完成的.
谢谢!
我有一个运行在Windows XP Professional上的.NET 2.0应用程序.此应用程序使用串行端口与某些自定义设备进行通信.
出于某种原因,我们的一些定制PC在串行端口存在问题,在使用几周后它将停止运行.其他自动重启,在我的方案中不起作用,是否有任何实用程序可以调试/诊断串口?是否有任何.NET库可以帮助解决这个问题(我可以编写自己的实用程序来调试端口)吗?
此外,有任何人有以下库的经验: Sax CommStudio
.net ×3
regex ×2
asp.net ×1
asp.net-mvc ×1
bitmap ×1
c# ×1
c++ ×1
cookies ×1
gdi ×1
gdi+ ×1
java ×1
jquery ×1
lockup ×1
php ×1
serial-port ×1
silverlight ×1
text ×1
vb.net ×1
web-crawler ×1
web-services ×1
windows ×1
winforms ×1
xaml ×1
xml ×1