我一直在尝试编写一个PHP脚本来使用DOMXPath解析XML文档; 但似乎我遗漏了一些东西,因为我的XPath查询都没有返回任何内容.所以我试图淡化我的脚本来尝试解析一个非常基本的XML文档,而这也不起作用.我已将此脚本基于此XPath示例.
<?php
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<bookstore>';
$xml .= '<book category="COOKING">';
$xml .= '<title lang="en">Everyday Italian</title>';
$xml .= '<author>Giada De Laurentiis</author>';
$xml .= '<year>2005</year>';
$xml .= '<price>30.00</price>';
$xml .= '</book>';
$xml .= '</bookstore>';
$dom = new DOMDocument('1.0');
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$result = $xpath->query('/bookstore/book[1]/title');
var_dump($result);
?>
Run Code Online (Sandbox Code Playgroud)
问题是$ result的var_dump 总是返回如下内容:
object(DOMNodeList)#4 (0) { }
Run Code Online (Sandbox Code Playgroud)
......表明它一无所获.
我需要能够从VB.NET类(不是用户控件)中判断当前请求是否是PostBack和/或CallBack(AJAX).在过去,我已经能够通过HttpContext.Current获取有关请求,响应,会话等的信息,但我无法在HttpContext.Current中找到Page对象.
这可能吗?
我有一些之前的过滤器,我用它来控制资源级别的资源访问.基本思路如下:
user
或者admin
可以基于"访问"表访问特定资源.admin
,owner
,特定用户或每个人.一些代码示例最好地说明了这一点.我们有4个应用程序级方法添加到调用链中before_filter
.这是示例控制器类的顶部:
before_filter :require_user
before_filter :get_object, :only=>[:show, :edit, :update, :destroy]
before_filter :require_access, :only=>[:show]
before_filter :require_owner, :only=>[:edit, :update, :destroy]
Run Code Online (Sandbox Code Playgroud)
如您所见,首先我们要求用户登录以访问此控制器中的任何方法.这里有3个方法(在application.rb中定义),以便您可以看到它们的样子:
private
def get_object
begin
class_name = controller_name.gsub("Controller","").downcase.singularize
instance_variable_set "@#{class_name}".to_sym, class_name.capitalize.constantize.find(params[:id])
rescue
flash[:error] = "You do not have access to that #{class_name}."
redirect_to "/" and return
end
end
private
def require_owner
class_name = controller_name.gsub("Controller","").downcase.singularize
accessable = instance_variable_get("@#{class_name.downcase}")
unless accessable.user == current_user
flash[:error] = "You do not have access to that …
Run Code Online (Sandbox Code Playgroud) 您知道我在说什么:例如,当您收到多封新电子邮件时,状态栏中的通知图标会增加一个包含未读邮件数量的小红圈.Twitroid有相同的图标.知道它是如何完成的吗?我不认为(或者我希望)有10000个相似的图标.这个红色圆圈是否生成并覆盖了通知图标?如果是这样 - 任何代码片段将非常感激.
我的任务是将旧的VB6程序转换为C#.我无法移植的一个功能是从二进制文件中读取的字段计算出生日期:
.BirthDate = CDate((CLng(recPatient.birthDateByte2) * 256) +
(recPatient.birthDateByte1 + 366))
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一一个远程类似的功能是:
DateTime BirthDate = DateTime.ToDateTime((long)recPatient.birthDateByte2) * 256)
+ (recPatient.birthDateByte1 + 366));
Run Code Online (Sandbox Code Playgroud)
然而,ToDateTime(long)
只是返回一个InvalidCastException
.
现在我可以手动构建字符串,但我无法在VB6上的任何地方找到任何文档CDate(long)
.
我究竟做错了什么?
对不起,我有很多关于锁/缓存的问题.= _ = ..
- > 1.关于缓存,我知道asp.net中的缓存是线程安全的,我通常使用的简单代码是
IList<User> user= HttpRuntime.Cache["myCacheItem"] as IList<User>;
if (user == null)
{
//should i have a lock here?
//lock(some_static_var){...}
HttpRuntime.Cache["myCacheItem"] = GetDateFromDateBase();
}
return user;
Run Code Online (Sandbox Code Playgroud)
应该在代码中使用锁?
- > - > 1.1如果我使用,也许我应该申报许多锁定项目?我在社区服务器上看到了一些实现,它使用静态字典来存储锁定项,这是个好主意吗?因为我担心字典中的锁定项可能太多而且它可能会减慢系统速度.
- > - > 1.2如果我不使用,会发生什么?只是可能有两个或更多线程访问GetDateFromDateBase()
?如果只是这个,我想也许我可以放弃锁定.
- > 2.i有一个存储在缓存中的通用字典,我必须修改(添加/更新/删除)它.我只是用它来获取像dic.trygetvalue(key)这样的值,不要循环它.
- > - > 2.1如果我可以保证修改只发生在一个线程中,场景就像
a.aspx - >从缓存中读取字典,并在页面上显示,public for user
b.ashx - >将修改调用它时的字典.(在5分钟内循环),私人使用
我应该在a/b中使用锁吗?锁定读者和作家?
- > - > - > 2.11如果我不使用任何锁,会发生什么?当读者和作者同时访问时,它会抛出异常吗?
- > - > - > 2.12如果我只是将作者锁定在b.ashx中,会发生什么?a.aspx中的读者会被阻止吗?什么是处理这种情况的最佳做法?
- > - > 2.2如果读写器都出现在多线程访问中.他们都是公共页面.
a.aspx …
我试图将这个haskell函数移植到F#
subs :: [a] -> [[a]]
subs [] = [[]]
subs (x:xs) = ys ++ map (x:) ys
where
ys = subs xs
Run Code Online (Sandbox Code Playgroud)
例
潜艇[1,2,3]
收益:
[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
返回列表的所有子序列,由排除或包括每个元素的所有可能组合给出
....
我遇到'where'语句的问题,它递归地生成另一个列表'ys'.
我也不确定我将谓词'(x :)'正确地移植到'(有趣的是我 - >我)'.
这是我能弄清楚的F#声明.
let rec subs list =
match list with
| [] -> [[]]
| x::xs -> List.map (fun i -> i) xs
Run Code Online (Sandbox Code Playgroud)
任何帮助或方向将不胜感激.
我在工具A中显示了编码A的文档A,在工具B中显示了编码B的文档B.如果我将B(部分)B剪切并粘贴到A中可能是什么结果字符编码?我意识到这取决于工具A和工具B以及粘贴缓冲区中保存的信息(可能包含编码?)和操作系统.
高质量的工具应该做什么?并且在实践中有多少常用工具(例如Word,TextPad,各种IDE等)做得很好?
我的应用扫描部分文件系统,我的用户报告说扫描网络驱动器时速度非常慢.测试我的代码,我确定的瓶颈:方法File.isFile()
,File.isDirectory()
以及File.isHidden()
,这些都是调用fs.getBooleanAttributes(File f)
.在Windows网络驱动器上,此方法似乎非常慢.如何提高性能?我可以避免以某种方式调用此方法吗?