如何在 JavaScript + Marklogic 中声明 xml 命名空间
How to declare xml namespace in JavaScript + Marklogic
我有 xml 个文档,例如 -
<domain xmlns:c="http://example.com/ns/core" xmlns="http://example.com/ns/core">
<c:id>http://example.com/xyz/no-data</c:id>
</domain>
我正在 MarkLogic 中使用 JavaScript,并希望在 c:id
上 运行 和 element value query。像这样 -
cts.elementValueQuery(xs.QName("c:id"), "http://example.com/xyz/no-data")
但是为此我需要声明命名空间 c
。如果是 xQuery,我们可以做这样的事情 -
declare namespace c="http://example.com/ns/core";
但我无法在 JavaScript 中了解如何执行此操作。
您可以使用 fn.QName() 而不是 xs.QName()。在下面的示例中,我将 nsC
(namespace-C) 声明为类似于已声明的命名空间前缀。
const nsC = "http://example.com/ns/core";
cts.elementValueQuery(
fn.QName(nsC, "id"),
"http://example.com/xyz/no-data"
)
我有 xml 个文档,例如 -
<domain xmlns:c="http://example.com/ns/core" xmlns="http://example.com/ns/core">
<c:id>http://example.com/xyz/no-data</c:id>
</domain>
我正在 MarkLogic 中使用 JavaScript,并希望在 c:id
上 运行 和 element value query。像这样 -
cts.elementValueQuery(xs.QName("c:id"), "http://example.com/xyz/no-data")
但是为此我需要声明命名空间 c
。如果是 xQuery,我们可以做这样的事情 -
declare namespace c="http://example.com/ns/core";
但我无法在 JavaScript 中了解如何执行此操作。
您可以使用 fn.QName() 而不是 xs.QName()。在下面的示例中,我将 nsC
(namespace-C) 声明为类似于已声明的命名空间前缀。
const nsC = "http://example.com/ns/core";
cts.elementValueQuery(
fn.QName(nsC, "id"),
"http://example.com/xyz/no-data"
)