在python中解析内存中的xml

问题描述 投票:-1回答:1

我正在尝试解析内存中的XML(不在文件中)。如何获得<id>的价值。

xmldoc="""
<forest-counts xsi:schemaLocation="http://marklogic.com/manage/forests manage-forests.xsd" xmlns="http://marklogic.com/manage/forests" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <id>10110137205746170621</id>
  <name>testdb1</name>
<forest-counts>
"""

由于某些限制,我无法使用BS。任何其他解决方案将不胜感激。

对于MarkLogic专家: 我正在尝试以编程方式获取forest-id。如果有任何其他解决方案,那就没关系。

python xml-parsing marklogic
1个回答
0
投票

我最近没有在Python中进行过大量的XML解析,但如果你想要的只是森林ID,你可以从JSON中的REST管理API获得。

curl -s --anyauth -u admin:admin "http://localhost:8002/manage/v2/forests?format=json"

这是少数几个在资源属性中不返回ID有点令人沮丧的例子之一。但它是从列表端点返回的JSON结构中。

这是一个jq查询,可以找到testdb1林的林ID:

jq ".\"forest-default-list\".\"list-items\".\"list-item\"[] | select(.nameref==\"testdb1\") | .idref"

请注意,林ID的表示形式是JSON中的字符串,即使它是一个数字。这避免了非常大的随机ID值的数字溢出问题。

© www.soinside.com 2019 - 2024. All rights reserved.