Python xpath 不工作?

2023-12-25

好吧,这开始让我有点抓狂了。我已经尝试了几个 Python 的 xml/xpath 库,但无法找到一种简单的方法来获取臭味十足的“标题”元素。

最新的尝试如下所示(使用 Amara):

def view(req, url):
    req.content_type = 'text/plain'
    doc = amara.parse(urlopen(url))
    for node in doc.xml_xpath('//title'):
    req.write(str(node)+'\n')

但这什么也打印不出来。我的 XML 看起来像这样:http://programanddesign.com/feed/atom/ http://programanddesign.com/feed/atom/

如果我尝试//*代替//title它按预期返回所有内容。我知道 XML 有title在那里,那么有什么问题吗?是命名空间还是什么?如果是这样,我该如何修复它?


似乎无法让它在没有前缀的情况下工作,但这确实有效:

def view(req, url):
    req.content_type = 'text/plain'
    doc = amara.parse(url, prefixes={'atom': 'http://www.w3.org/2005/Atom'})
    req.write(str(doc.xml_xpath('//atom:title')))

您可能只需要考虑正在处理的文档的名称空间。

我建议查找如何处理 Amara 中的名称空间:

http://www.xml3k.org/Amara/Manual#namespaces http://www.xml3k.org/Amara/Manual#namespaces

编辑:使用您的代码片段我做了一些编辑。我不知道您使用的是哪个版本的 Amara,但根据我尝试尽可能适应它的文档:

def view(req, url):
    req.content_type = 'text/plain'
    ns = {u'f' : u'http://www.w3.org/2005/Atom',
        u't' : u'http://purl.org/syndication/thread/1.0'}
    doc = amara.parse(urlopen(url), prefixes=ns)
    req.write(str(doc.xml_xpath(u'f:title')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python xpath 不工作? 的相关文章

随机推荐

  • Cordova 应用程序中的 HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)

    我使用 Cordova 3 2 和 jquery mobile 1 3 创建了一个 iOS 应用程序 我使用 jquery ajax 向 RESTfull 服务发送请求以检索 更新信息 我有很多测试设备 各种 iPhone 具有各种不同的
  • Xcode 11 中如果没有更多上下文,表达式类型不明确

    我想参考一个 Item 列出一个内 EnvironmentObject但是当在一个范围内访问它时SwiftUI List 我收到错误 我不明白的是 执行以下操作时不会弹出此错误Apple 的 Landmark 教程 https develo
  • MPRemoteCommandCenter 对 MPMusicPlayerController 不执行任何操作

    我一直在编写使用的代码 MPMusicPlayerController applicationMusicPlayer 演奏音乐 此操作已成功运行 并将在控制中心屏幕上显示当前播放曲目的详细信息 不幸的是 我似乎无法从控制中心屏幕或耳机中使用
  • Rails、jQuery、.js.erb 文件、JS 不被浏览器执行

    我正在尝试使用 jQuery 一切都很棒 直到现在 当我尝试渲染部分并将其附加到 div 时 这是我的设置方法 我有一个响应 js 的操作 def index objects Object find all respond to do fo
  • 如何使用 powershell 脚本在 CSV 文件顶部添加新行?

    我是 powershell 脚本编写的新手 我正在寻找一种方法在现有 csv 文件的顶部添加 2 个新行 我尝试过的事情是用新行替换标题和行 我正在寻找一种在 CSV 标题上方添加 2 个新行的方法 您提到您要添加新行above标头 这意味
  • Symfony $request->isXmlHttpRequest() 问题

    我需要检查请求是否是ajax request gt isXmlHttpRequest 工作正常 但是如果在执行过程中某个地方有重定向 此方法将返回 false 在这种情况下我还能如何检查请求是否是ajax 附注ajax是由jQuery发起的
  • 如何调用请求标头上需要不记名令牌的 NSwag 客户端方法?

    我没有确切了解 NSwag 如何与 IdentityServerX 不记名令牌交互并按常规添加请求标头 据我了解 我的主机 api 应用程序使用 LDAP 身份验证实现了 IdentityServer3 如果任何主机需要令牌进行身份验证 则
  • 在 R 中以日期为 X 轴绘图

    我以电子方式维护我的日记 我试图了解过去几个月我的日记写作的一致性 我有以下数据文件 显示有多少日记帐分录 Entry Count 和单词 Word Count 我记录了之前 30 天的时间 Date Entry Count Word Co
  • 在 Windows 上将 filesystem::path 转换为 char*

    The C 17 文件系统 https en cppreference com w cpp filesystem基于boost filesystem 我现在在 Windows 上使用 VS2017 include
  • sqlserver 中的 CONVERT 问题,出现 Msg 529 错误

    select CONVERT datetime value 103 from results 这个声明给了我一个错误 Msg 529 Level 16 State 2 Line 1 Explicit conversion from data
  • 如何检查进程是否属于当前用户?

    我正在尝试获取属于当前用户的进程的 PID 但我不知道如何检查进程所有者 这是我的代码 缺少用户的检查条件 uses TlHelp32 type TCardinalArray array of Cardinal function GetCu
  • 如何在tensorflow.js中获取/设置监督模型的权重?

    我想更改监督模型的权重 但更改权重后得到的结果完全相同 我究竟做错了什么 const model tf sequential model add tf layers dense model add tf layers dense model
  • 我想测试一个私有方法 - 我的设计有问题吗? [复制]

    这个问题在这里已经有答案了 因此 我对软件测试非常陌生 并且正在考虑向我的一个应用程序添加一些测试 我有一个公共方法 addKeywords 它一路上调用一个私有方法removeInvalidOperations 这个私有方法调用外部 AP
  • AngularJs - ngRepeat 带有返回新对象的过滤器

    我正在尝试对过滤器中的对象应用转换 这会导致返回一组新对象 这是因为我想在应用转换后过滤对象并显示转换结果 然而 我最终得到了无限的摘要 因为我显示的对象与我放入的对象不同 当比较它们时 ids 我解决这个问题的想法如下 使用类似的跟踪表达
  • 谷歌地图发布密钥的 SHA1 显示一些加密文本

    我正在使用谷歌地图 在调试模式下 这真是太棒了 对于发布模式 我尝试从我的 windows10 hp probook 获取发布 SHA1 密钥 但我得到了一些加密文本而不是 SHA1 我的命令如下 C Program Files Java
  • GetSupportActionBar 返回 null

    当我开始第二个 Activity 后 就没有 ActionBar 了 当我调用 GetSupportActivity 时 它返回 null 为什么 我有 minSdkVersion 10 和 targetSdkVersion 15
  • 在 Haxe 中传递任意函数参数列表

    在 ActionScript 中我可以使用 在函数声明中 因此它接受任意参数 function foo args void trace args length 然后我可以调用传递数组的函数 foo apply this argsArray
  • JS 中的动态 import() 文件

    我需要导入标记文件动态切片文件的一部分并将结果添加到变量并在我的 React 应用程序中渲染结果 import changelog md then 我试图这样做render 具有所有逻辑的方法 但我有问题 我需要在哪里导入它 在类中或外部
  • Excel 数据透视表 - 计算总和的平均值

    我确信这很简单 但是如何获得数据透视表来显示计算出的字段总和的平均值 在简化的示例中 我过滤掉了资金 x1 数据透视表显示了每人剩余资金的总和 现在我如何获得平均值按人 所以 手动计算 3300 3 我尝试使用计算字段 但无法弄清楚它是如何
  • Python xpath 不工作?

    好吧 这开始让我有点抓狂了 我已经尝试了几个 Python 的 xml xpath 库 但无法找到一种简单的方法来获取臭味十足的 标题 元素 最新的尝试如下所示 使用 Amara def view req url req content t