我正在尝试对xhtml文档进行xpath查询.使用.NET 3.5.
该文件如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
....
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因为文档包含各种char实体( 等等),所以我需要使用DTD,以便使用XmlReader加载它.所以我的代码看起来像这样:
var s = File.OpenRead(fileToRead)
var reader = XmlReader.Create(s, new XmlReaderSettings{ ProhibitDtd=false });
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它会返回
打开外部DTD'http: //www.w3.org/TR/xhtml1-transitional.dtd '时发生错误:远程服务器返回错误:(503)服务器不可用.
现在,我知道为什么我得到503错误. W3C非常清楚地解释了这一点.
我见过"解决方法",人们只是禁用DTD.这是ProhibitDtd=true可以做的,它消除了503错误.
但在我的情况下导致其他问题 - 应用程序没有获得实体定义,因此不是格式良好的XML.如何在不访问w3.org网站的情况下验证DTD并获取实体定义?
我认为.NET 4.0有一个漂亮的内置功能来处理这种情况:XmlPreloadedResolver.但我需要.NET 3.5的解决方案.
我正在尝试为生成大量文本的代码编写单元测试.我遇到了一个问题,其中"预期"和"实际"字符串似乎相等,但Assert.AreEqual抛出,并且都是相等运算符并Equals()返回false.GetHashCode()两个值的结果也不同.
但是,将两个字符串放入文本文件并与DiffMerge进行比较告诉我它们是相同的.
此外,Encoding.ASCII.GetBytes()在两个值上使用然后使用SequenceEquals 比较结果字节数组返回true.
这些值每个都是34KB,所以我暂时把它们放在这里.有任何想法吗?我完全难过了.
我最近出现了这行代码:
CustomData_em_free_block(&em->vdata, &eve->data);
Run Code Online (Sandbox Code Playgroud)
我想,不是:
a->b
Run Code Online (Sandbox Code Playgroud)
只是语法糖:
(*a).b
Run Code Online (Sandbox Code Playgroud)
考虑到这一点,这条线可以重写为:
CustomData_em_free_block(&(*em).vdata, &(*eve).data);
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,传递的重点是什么
&(*a),作为参数,而不只是一个?似乎指针等效于 - ( - a)正在传入,是否有任何逻辑?
谢谢.
我正在尝试使用html5lib将html页面解析为我可以使用xpath查询的内容.html5lib文档接近零,我花了太多时间试图解决这个问题.最终目标是拉出表的第二行:
<html>
<table>
<tr><td>Header</td></tr>
<tr><td>Want This</td></tr>
</table>
</html>
Run Code Online (Sandbox Code Playgroud)
所以试试吧:
>>> doc = html5lib.parse('<html><table><tr><td>Header</td></tr><tr><td>Want This</td> </tr></table></html>', treebuilder='lxml')
>>> doc
<lxml.etree._ElementTree object at 0x1a1c290>
Run Code Online (Sandbox Code Playgroud)
看起来不错,让我们看看我们还有什么:
>>> root = doc.getroot()
>>> print(lxml.etree.tostring(root))
<html:html xmlns:html="http://www.w3.org/1999/xhtml"><html:head/><html:body><html:table><html:tbody><html:tr><html:td>Header</html:td></html:tr><html:tr><html:td>Want This</html:td></html:tr></html:tbody></html:table></html:body></html:html>
Run Code Online (Sandbox Code Playgroud)
大笑?
认真.我打算使用一些xpath来获取我想要的数据,但这似乎不起作用.那我该怎么办?我愿意尝试不同的库和方法.
我有一个像这样的HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="style.css">
</head>
<body>
<div id="test">Testing</div>
<script>
alert(document.getElementById('test').style.display);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
style.css:
div {
display:none;
}
Run Code Online (Sandbox Code Playgroud)
我希望js会返回"none",但它会返回一个空字符串.有什么方法可以解决这个问题吗?
我所知道的关于AppleScript的一切我自学了,并且想知道我是否错过了任何很酷的功能.我知道你可以让计算机与应用程序通信并控制应用程序,但它还有什么可以做的,或者是时候转向使用新语言了吗?
我在这是一个菜鸟,无法弄清楚为什么连字符被添加到这样的东西:
甚至不确定我在这个问题的标题中的术语是否准确.
我试图从一个表中选择行(其中一个(NVARCHAR)列在数值范围内).
SELECT ID, Value
FROM Data
WHERE ISNUMERIC(Value) = 1 AND CONVERT(FLOAT, Value) < 66.6
Run Code Online (Sandbox Code Playgroud)
不幸的是,作为SQL规范的一部分,AND子句不必短路(并且不在MSSQL Server EE 2008上).更多信息:SQL WHERE子句的短路评估是什么?
我的下一次尝试是尝试这个,看看我是否可以延迟评估CONVERT
SELECT ID, Value
FROM Data
WHERE (CASE WHEN ISNUMERIC(Value) = 1 THEN CONVERT(FLOAT, Value) < 66.6 ELSE 0 END)
Run Code Online (Sandbox Code Playgroud)
但我似乎无法使用CONVERT的结果<(或任何比较).它因错误而失败
Incorrect syntax near '<'.
Run Code Online (Sandbox Code Playgroud)
我可以逃脱
SELECT ID, CONVERT(FLOAT, Value) AS Value
FROM Data
WHERE ISNUMERIC(Value) = 1
Run Code Online (Sandbox Code Playgroud)
所以显而易见的解决方案是将整个select语句包装在另一个SELECT和WHERE中,并从内部select和filter中返回转换后的值,在那里选择外部select.不幸的是,这是我的Linq-to-sql问题的来源.我不仅过滤了一个范围,而且过滤了很多,或者只是记录的存在(有一些日期范围选择和比较我遗漏了. )
基本上我希望能够生成这样的东西:
SELECT ID, TypeID, Value
FROM Data
WHERE (TypeID = 4 AND ISNUMERIC(Value) AND CONVERT(Float, Value) < 66.6)
OR …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释我如何成功地让我的流程进行沟通?我发现IPC上的perldoc令人困惑.
到目前为止我所拥有的是:
$| = 1;
$SIG{CHLD} = {wait};
my $parentPid = $$;
if ($pid = fork();) ) {
if ($pid == 0) {
pipe($parentPid, $$);
open PARENT, "<$parentPid";
while (<PARENT>) {
print $_;
}
close PARENT;
exit();
} else {
pipe($parentPid, $pid);
open CHILD, ">$pid";
or error("\nError opening: childPid\nRef: $!\n");
open (FH, "<list")
or error("\nError opening: list\nRef: $!\n");
while(<FH>) {
print CHILD, $_;
}
close FH
or error("\nError closing: list\nRef: $!\n");
close CHILD
or error("\nError closing: childPid\nRef: $!\n);
} else …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个基于策略的宿主类(即一个继承自其模板类的类),其中一个扭曲,其中策略类也由宿主类进行模板化,以便它可以访问其类型.这可能有用的一个例子是策略(实际上像mixin一样使用),使用多态clone()方法扩充宿主类.这是我正在尝试做的最小例子:
template <template <class> class P>
struct Host : public P<Host<P> > {
typedef P<Host<P> > Base;
typedef Host* HostPtr;
Host(const Base& p) : Base(p) {}
};
template <class H>
struct Policy {
typedef typename H::HostPtr Hptr;
Hptr clone() const {
return Hptr(new H((Hptr)this));
}
};
Policy<Host<Policy> > p;
Host<Policy> h(p);
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这不能编译,在我看来像循环类型依赖:
try.cpp: In instantiation of ‘Host<Policy>’:
try.cpp:10: instantiated from ‘Policy<Host<Policy> >’
try.cpp:16: instantiated from here
try.cpp:2: error: invalid use of incomplete type ‘struct …Run Code Online (Sandbox Code Playgroud) .net ×1
applescript ×1
c ×1
c# ×1
c++ ×1
crtp ×1
css ×1
dtd ×1
equality ×1
html ×1
html5lib ×1
indirection ×1
ipc ×1
javascript ×1
linq-to-sql ×1
lxml ×1
macos ×1
parsing ×1
perl ×1
pointers ×1
policy ×1
polymorphism ×1
python ×1
ruby ×1
string ×1
t-sql ×1
templates ×1
views ×1
w3c ×1
xhtml ×1
xml ×1
xpath ×1