如何将 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) } }
我正在为 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) } }