从下面开始,我想从包含xml:lang="en"
属性的节点中获取文本。
<li><span class="literal"><span property="dbpedia-owl:abstract" xmlns:dbpedia-owl="http://dbpedia.org/ontology/" xml:lang="en">text</span></span></li>
目前我正在使用:
ns = {"xmlns" => "http://www.w3.org/1999/xhtml"}
ns = {"xml" => "http://www.w3.org/XML/1998/namespace"}`
array << doc.xpath("//span[@property='dbpedia-owl:abstract' and xmlns:dbpedia-owl='http://dbpedia.org/ontology/' and @xml:lang='en']").text`
我不确定这是我的XPath数组或命名空间声明是错误的,但无论哪种方式,我都没做正确的事情。
如果之前已经问过这个问题,我会道歉,但我找不到一些名称空间和多个属性的组合,所以我可能只是将我发现的解决方案与那些不同的问题组合在一起。 xmlsn:dbpedia-owl
值是URL的问题也可能是一个问题,但同样不确定。
答案 0 :(得分:1)
我不在我的电脑上,所以我无法测试,但我会从以下内容开始:
doc.at('span.literal').text
命名空间很有用,但根据您的示例,您应该能够轻松获取文本。