问题列表 - 第24229页

打开extern DTD(w3.org,xhtml1-transitional.dtd)时出错.503服务器不可用

我正在尝试对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实体(&nbsp;等等),所以我需要使用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的解决方案.


相关:
- java.io.IOException:服务器返回HTTP响应代码:503

.net xml xhtml w3c dtd

10
推荐指数
1
解决办法
5869
查看次数

C#字符串相等运算符返回false,但我很确定它应该是真的......什么?

我正在尝试为生成大量文本的代码编写单元测试.我遇到了一个问题,其中"预期"和"实际"字符串似乎相等,但Assert.AreEqual抛出,并且都是相等运算符并Equals()返回false.GetHashCode()两个值的结果也不同.

但是,将两个字符串放入文本文件并与DiffMerge进行比较告诉我它们是相同的.

此外,Encoding.ASCII.GetBytes()在两个值上使用然后使用SequenceEquals 比较结果字节数组返回true.

这些值每个都是34KB,所以我暂时把它们放在这里.有任何想法吗?我完全难过了.

c# string equality

5
推荐指数
2
解决办法
4011
查看次数

在C中将指针取消引用作为参数的目的

我最近出现了这行代码:

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)正在传入,是否有任何逻辑?

谢谢.

c pointers indirection

1
推荐指数
1
解决办法
231
查看次数

如何使用html5lib解析HTML,并使用XPath查询解析的HTML?

我正在尝试使用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来获取我想要的数据,但这似乎不起作用.那我该怎么办?我愿意尝试不同的库和方法.

python xpath parsing lxml html5lib

17
推荐指数
2
解决办法
1万
查看次数

使用javascript从外部css文件中获取元素的样式

我有一个像这样的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",但它会返回一个空字符串.有什么方法可以解决这个问题吗?

html javascript css

9
推荐指数
1
解决办法
4662
查看次数

你可以用AppleScript做什么?

我所知道的关于AppleScript的一切我自学了,并且想知道我是否错过了任何很酷的功能.我知道你可以让计算机与应用程序通信并控制应用程序,但它还有什么可以做的,或者是时候转向使用新语言了吗?

macos applescript language-features

5
推荐指数
2
解决办法
3284
查看次数

将连字符添加到ruby循环<% - %>的结束标记中意味着什么

我在这是一个菜鸟,无法弄清楚为什么连字符被添加到这样的东西:

甚至不确定我在这个问题的标题中的术语是否准确.

ruby views ruby-on-rails

3
推荐指数
1
解决办法
753
查看次数

T-SQL选择与ISNUMERIC匹配的值,并且也在指定范围内.(加上Linq-to-sql)

我试图从一个表中选择行(其中一个(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)

t-sql linq-to-sql predicatebuilder

4
推荐指数
1
解决办法
1万
查看次数

如何使用`pipe`来促进Perl中的进程间通信?

任何人都可以解释我如何成功地让我的流程进行沟通?我发现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)

perl ipc

3
推荐指数
1
解决办法
2258
查看次数

将基于策略的设计与C++中的CRTP相结合

我正在尝试编写一个基于策略的宿主类(即一个继承自其模板类的类),其中一个扭曲,其中策略类也由宿主类进行模板化,以便它可以访问其类型.这可能有用的一个例子是策略(实际上像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)

c++ polymorphism policy templates crtp

9
推荐指数
1
解决办法
1964
查看次数