我正在使用Nokogiri处理XHTML文档的片段,并且遇到了一些我无法解释或解决的行为。我不确定这是一个错误,还是我不理解的东西。
考虑以下两行,展示我遇到的问题的简化版本:
puts Nokogiri::XML::DocumentFragment.parse(" <pre><div>foo</div></pre>")
puts Nokogiri::XML::DocumentFragment.parse("<pre><div>foo</div></pre>")
这是输出:
<pre>div>foo/div></pre>
<pre><div>foo</div></pre>
第二行是我的期望,但第一行让我困惑。
去了哪里?为什么它的存在导致<
消失?
答案 0 :(得分:1)
基于matt的建议,我正在通过将片段包装在一个完整的XHTML文件中来解析片段,因为这样可以让Nokogiri知道XHTML实体。
void deletRecursive(File fileOrDirectory){
if(fileOrDirectory.isDirectory()){
for(File child :fileOrDirectory.listFiles())
deletRecursive(child);
fileOrDirectory.delete();
}
if(!fileOrDirectory.delete()){
}
}
感觉有点沉重,但它确实有效。