我正在尝试解析内存中的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解析,但如果你想要的只是森林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值的数字溢出问题。