当前位置: 首页 > 面试题库 >

DOMXpath-获取元素的href属性和文本值

岳嘉良
2023-03-14
问题内容

所以我有一个这样的HTML字符串:

<td class="name">
   <a href="/blah/somename23123">Some Name</a>
</td>
<td class="name">
   <a href="/blah/somename28787">Some Name2</a>
</td>

使用XPath,我可以使用以下Xpath查询来获取href属性的值:

 $domXpath = new \DOMXPath($this->domPage);
 $hrefs = $domXpath->query("//td[@class='name']/a/@href");
 foreach($hrefs as $href) {...}

而且,获得文本值甚至更容易,如下所示:

 // Xpath auto. strips any html tags so we are 
 // left with clean text value of a element
 $domXpath = new \DOMXPath($this->domPage);
 $names = $domXpath->query("//td[@class='name']/");
 foreach($names as $name) {...}

现在,我很想知道,我如何才能将这两个查询组合在一起而只用一个查询来获得两个值(如果这甚至是可能的话?)。


问题答案:

//td[@class='name']/a

然后使用选中文本,使用选中nodeValue属性getAttribute('href')

除此之外,您可以将Xpath查询与Union Operator结合使用,|从而可以使用

//td[@class='name']/a/@href|//td[@class='name']

也一样



 类似资料:
  • 问题内容: 试图在页面上找到链接。 我的正则表达式是: 但似乎失败了 我该如何更改我的正则表达式以处理未置于a标签首位的href? 问题答案: 可靠的HTML正则表达式很困难。这是使用DOM的方法: 上面将找到并输出字符串中所有元素的“outerHTML”。 要 获取 节点的所有文本值,请执行以下操作 要 检查 是否属性存在,你可以做 为了 获得 该你做的属性 要 更改 的属性,你会怎么做 要 删

  • 问题 在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据。 方法 要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的文本,可以使用Element.text()方法 对于要取得元素或属性中的HTML内容,可以使用Element.html(), 或Node.outerHtml()方法 示例: String html =

  • 问题内容: 如何获得元素属性值? 例如HTML元素: JS: 非常感谢任何建议,请在此处进行JSFIDDLE演示:http : //jsfiddle.net/h3TFy/ 问题答案: 由于要将目标元素发送到函数,因此可以执行以下操作以获取ID:

  • 我使用Thymeleaf创建html组件。组件在单独的文件中声明: 中基本按钮的声明 这个想法是为组件提供某种类型的工具集。使用此组件的代码将是: 它运行良好,但我考虑了按钮需要具有以下属性的情况:或或任何其他属性。问题来了: 如何将属性传递给按钮? 一种方法是将其作为片段的参数传递,但它太丑了。 有什么方法可以获取片段中占位符的属性吗?(见下面的示例) 我想这样调用片段: 并且在片段中想要获取这

  • 问题内容: 我正在使用Java解析Xml,我想在属性值的帮助下解析元素。 例如 在这种情况下,我想使用att值解析tag1数据。我是java和xml的新手。请引导我。 问题答案: 有多种方法可以做到这一点。您可以使用xPath(示例),DOM Document或SAX Parser(示例)来检索属性值和标记元素。 这是您要求的解决方法。我从不建议使用“ hack”类型,而是使用SAX(请参见示例链

  • 问题内容: 如何在此页面上获取此“ h2”标题的所有“ href”属性? 我尝试过的没有得到href的是: 这没有获得“ a”标签的链接。如果我在“ a”标签上找到了所有元素,它将返回页面上的每个href(这不是我想要的)。我只想返回上述标题,但能够获取其url“ href”属性。 问题答案: 这是从所有页面获取所有书籍的代码: