gpt4 book ai didi

haskell - 为什么 HXT 的 xpath 搜索器不返回简单查询的结果?

转载 作者:行者123 更新时间:2023-12-02 06:53:13 26 4
gpt4 key购买 nike

http://www.xpathtester.com/xpath我测试了//i in 应该可以工作。为什么不呢?

import Text.XML.HXT.Core
import Text.XML.HXT.XPath
import System.Environment
runX $ readString [] "<r><i/></r>" >>> getXPathTrees "/" >>> writeDocumentToString []
-- ["<r><i/></r>"]
runX $ readString [] "<r><i/></r>" >>> getXPathTrees "//i" >>> writeDocumentToString []
-- [""]

最佳答案

XPath 表达式的计算错误。例如,这些查询

runX $ readString [] "<r><i/></r>" >>> getXPathTrees "/*[1]" >>> writeDocumentToString [] 
runX $ readString [] "<r><i/></r>" >>> getXPathTrees "/r" >>> writeDocumentToString []

应该返回“r”元素(XML文档的根元素),但是返回

["<i/>"]

看来getXPathTrees返回的是匹配表达式的内容,所以必须返回节点的父节点:

runX $ readString [] "<r><i/></r>" >>> getXPathTrees "/r/i/.." >>> writeDocumentToString []
["<i/>"]

runX $ readString [] "<r><i id='1'/><i id='2'/></r>" >>> getXPathTrees "//i/.." >>> writeDocumentToString []
["<i id=\"1\"/><i id=\"2\"/>"]

(我不使用 HXT,这是错误的,我想知道是否有另一种干净的方法来获取节点而不跳转到父节点......)

关于haskell - 为什么 HXT 的 xpath 搜索器不返回简单查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com