Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 对于使用R和XPath 1.0的XML查询,无法提取特定文本_Html_Xml_R_Parsing_Xpath - Fatal编程技术网

Html 对于使用R和XPath 1.0的XML查询,无法提取特定文本

Html 对于使用R和XPath 1.0的XML查询,无法提取特定文本,html,xml,r,parsing,xpath,Html,Xml,R,Parsing,Xpath,我将非常感谢指导我如何提取这家公司有办事处的四个城市的名称。Firebug的名称在cufontext下变灰,例如孟菲斯,孟菲斯为灰色。顺便说一句,我不介意回复一些无关的文本,比如州或地址。我有三次失败的努力 library(XML) doc <- htmlTreeParse('http://www.lewisthomason.com/locations/', useInternal = TRUE, asText = TRUE) xpathSApply(doc

我将非常感谢指导我如何提取这家公司有办事处的四个城市的名称。Firebug的名称在cufontext下变灰,例如
孟菲斯
,孟菲斯为灰色。顺便说一句,我不介意回复一些无关的文本,比如州或地址。我有三次失败的努力

library(XML)

doc <- htmlTreeParse('http://www.lewisthomason.com/locations/', useInternal = TRUE, asText = TRUE)               
xpathSApply(doc, "//div[@id = 'the_content']", xmlValue, trim = TRUE)  # returns list()
xpathSApply(doc, "//div[@id = 'the_content']/div/h3//cufon", xmlValue, trim = TRUE) # returns NULL
xpathSApply(doc, "//div[@id = 'the_content']//cufon[@class = 'cufon cufon-canvas']", xmlValue, trim = TRUE)  # returns NULL
库(XML)

doc证明HTML源代码实际上是这样的(格式化和简化):


非常感谢。如果我从Firebug复制HTML源代码,我是否会在这里使用{}操作来像您一样格式化它(红色表示属性,蓝色表示'element'和缩进?>doc xpathsaply(doc,“//div[@id='the_content']/div/h3”,xmlValue,trim=TRUE)null我实际上不熟悉
R
,只知道XPath。总之,在看过文档之后(在任何地方都找不到
htmlTreeParse()
的文档),
asText=TRUE
将导致解析器将您的url视为HTML(尝试打印
doc
变量以确认这一点)。我很想接受你的回答,@har07,但它不起作用,如我上面的评论所示。这次为什么需要设置
asText=TRUE
?我真的怀疑这会导致一个问题,
rl@RichardScriven:谢谢。从网站获取HTML不是问题。提取城市的XPath表达式是阻止我访问的原因下面是建议的答案。
<div id="the_content">
    <div class="one_fourth">
        <h3>KNOXVILLE</h3>
        <p>One Centre Square, Fifth Floor<br>
        .....
    </div>
    ....
</div>
//div[@id = 'the_content']/div/h3