如何将 xpath 值格式化为地图?

How to format xpath values as map?

我正在为 VSCode 使用 Xpath Notebook 扩展。我正在尝试提取信息并获取它们,最好是 table。所以我的目标是将所选数据映射到这样的地图:

Array<{
  name: string,
  text: string
}>

输入 xml 如下所示:

<Values>
    <Value name="TestValue">
        <Text text="Test text"/>
    </Value>
    <Value name="Another">
        <Text text="Another test"/>
    </Value>
</Values>

我的代码片段如下所示:

doc("C:\..pathto..\test.xml")//Value/[@name!string(),./Text/@text!string()]

输出如下所示:

[
    [
        "TestValue",
        "Test text"
    ],
    [
        "Another",
        "Another test"
    ]
]

所以我得到了我需要的所有数据,但格式是我需要的。 有什么简单的方法可以将其映射到我上面显示的格式吗?

我已经用 map:entry 尝试了一些测试,但到目前为止我还没有成功。

XPath 3.1 映射的语法例如是map { 'name' : string(@name), 'text' : string(Text/@text) } 所以在你的示例上下文中,我猜你想要一个地图数组,例如

doc("C:\..pathto..\test.xml")/Values ! array { Value ! map { 'name' : string(@name), 'text' : string(Text/@text) } }