как получить доступ к узлу, когда путь содержит пространство, используя node.xpath? - PullRequest
1 голос
/ 01 ноября 2019

Мне нужно использовать node.xpath для доступа к узлу JSON, но имя свойства содержит пробел, например «Имя»:

empDesc = cts.doc('/employee/employee1.json').xpath('//First Name');

Как я могу заставить эту работу работать?

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Вы можете использовать node() с аргументом внутри MarkLogic XPath:

empDesc = cts.doc('/employee/employee1.json').xpath('//node("First Name")');

Если вам нужно получить несколько свойств, вы также можете сначала преобразовать в объект JSON и получить к нему доступ обычным способом,как предложила Мэри. Примерно так:

let doc = cts.doc('/employee/employee1.json').toObject();
let empDesc = doc.employee['First Name'] + ' ' + doc.employee['Last Name'];

HTH!

1 голос
/ 01 ноября 2019

Примерно так:

empDesc = cts.doc('/employee/employee1.json').xpath('//*[name(.)="First Name"]')

Но вам, вероятно, лучше преобразовать это в объект JSON и использовать обычные методы доступа.

...