如何使用XQuery获取HTML页面中input节点的value属性值
解决方案
你需要调整元素选择逻辑和属性取值方式,具体修改如下:
- 修正目标元素定位:你要找的是id为
input1的<input>标签,不是div节点,所以选择器改为$doc//input[@id="input1"],//表示在整个文档树中递归查找符合条件的节点。 - 读取value属性:XQuery中获取节点属性直接使用
@属性名语法,搭配data()函数即可拿到属性的纯文本值。
修正后完整代码
let $doc := html:parse(fetch:binary('websiteaddress')) return <datarow> <input1>{data($doc//input[@id="input1"]/@value)}</input1> </datarow>
可选兼容处理
如果解析后的HTML带默认命名空间导致匹配不到节点,可以用忽略命名空间的写法:
data($doc//*:input[@id="input1"]/@value)
如果需要避免目标节点不存在时报错,可以加默认空值逻辑:
data(($doc//input[@id="input1"]/@value)[1] ! (., '')[1])
内容的提问来源于stack exchange,提问作者Keksstar
相关产品推荐
相关产品推荐

