Why is this Xquery expression returning a null value?
I want to get the maximum value for an attribute. I have the following statement:
let $posts := doc("Posts.xml")/posts/row[./@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
When I want to return maxScore, it shows up as an empty value. Upon further tinkering, the following:
Return $posts/row/@Score
Also shows up as empty, even though I know each row has a 'Score' attribute
I've been fighting with this for over an hour, any help is appreciated
xpath xquery
add a comment |
I want to get the maximum value for an attribute. I have the following statement:
let $posts := doc("Posts.xml")/posts/row[./@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
When I want to return maxScore, it shows up as an empty value. Upon further tinkering, the following:
Return $posts/row/@Score
Also shows up as empty, even though I know each row has a 'Score' attribute
I've been fighting with this for over an hour, any help is appreciated
xpath xquery
add a comment |
I want to get the maximum value for an attribute. I have the following statement:
let $posts := doc("Posts.xml")/posts/row[./@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
When I want to return maxScore, it shows up as an empty value. Upon further tinkering, the following:
Return $posts/row/@Score
Also shows up as empty, even though I know each row has a 'Score' attribute
I've been fighting with this for over an hour, any help is appreciated
xpath xquery
I want to get the maximum value for an attribute. I have the following statement:
let $posts := doc("Posts.xml")/posts/row[./@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
When I want to return maxScore, it shows up as an empty value. Upon further tinkering, the following:
Return $posts/row/@Score
Also shows up as empty, even though I know each row has a 'Score' attribute
I've been fighting with this for over an hour, any help is appreciated
xpath xquery
xpath xquery
edited Nov 15 '18 at 3:47
Mads Hansen
44.2k1093121
44.2k1093121
asked Nov 14 '18 at 23:59
Francisco José LetterioFrancisco José Letterio
1415
1415
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You are selecting the row
elements that meet the criteria of your predicate. So, the $posts
variable will have a sequence of row
elements.
If you want to select the @Score
from each of the row
elements in the $posts
variable, your XPath should be: $posts/@Score
It would be less confusing if you named the variable $rows
.
Or, change the XPath to actually select posts
elements:
let $posts := doc("Posts.xml")/posts[row/@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310565%2fwhy-is-this-xquery-expression-returning-a-null-value%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You are selecting the row
elements that meet the criteria of your predicate. So, the $posts
variable will have a sequence of row
elements.
If you want to select the @Score
from each of the row
elements in the $posts
variable, your XPath should be: $posts/@Score
It would be less confusing if you named the variable $rows
.
Or, change the XPath to actually select posts
elements:
let $posts := doc("Posts.xml")/posts[row/@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
add a comment |
You are selecting the row
elements that meet the criteria of your predicate. So, the $posts
variable will have a sequence of row
elements.
If you want to select the @Score
from each of the row
elements in the $posts
variable, your XPath should be: $posts/@Score
It would be less confusing if you named the variable $rows
.
Or, change the XPath to actually select posts
elements:
let $posts := doc("Posts.xml")/posts[row/@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
add a comment |
You are selecting the row
elements that meet the criteria of your predicate. So, the $posts
variable will have a sequence of row
elements.
If you want to select the @Score
from each of the row
elements in the $posts
variable, your XPath should be: $posts/@Score
It would be less confusing if you named the variable $rows
.
Or, change the XPath to actually select posts
elements:
let $posts := doc("Posts.xml")/posts[row/@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
You are selecting the row
elements that meet the criteria of your predicate. So, the $posts
variable will have a sequence of row
elements.
If you want to select the @Score
from each of the row
elements in the $posts
variable, your XPath should be: $posts/@Score
It would be less confusing if you named the variable $rows
.
Or, change the XPath to actually select posts
elements:
let $posts := doc("Posts.xml")/posts[row/@OwnerUserId = $user/@Id]
let $maxScore := fn:max(xs:integer($posts/row/@Score))
answered Nov 15 '18 at 3:42
Mads HansenMads Hansen
44.2k1093121
44.2k1093121
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310565%2fwhy-is-this-xquery-expression-returning-a-null-value%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown