Comparing current element's sub-elements/child attributes with the following element's sub-elements/child attributesXPath: Select first element with a specific attributeShould I use Elements or Attributes in XML?In a Schematron rule, how do i access the parent element of the current element?XPath to select element based on childs child valueSchematron test for text of content node (up to a certain position)Is it possible to restrict XSD attributes to follow a numerical order?Exclusive XPath testWhen using XSLT 2, Schematron ignores rules that have attributes in their contextXpath wildcard returns only the first elementCheck for duplicated data with multiple attribute in sibling elements - Schematron
Is there a way to handmake alphabet pasta?
Why hasn't the U.S. government paid war reparations to any country it attacked?
line break after the word "proof" in proof environment
Is there an English equivalent for "Les carottes sont cuites", while keeping the vegetable reference?
What is the technical explanation of the note "A♭" in a F7 chord in the key of C?
Why use null function instead of == [] to check for empty list in Haskell?
What exactly is a Hadouken?
Why is "dark" an adverb in this sentence?
What is this old "lemon-squeezer" shaped pan
Why limit to revolvers?
Can a pizza stone be fixed after soap has been used to clean it?
Doing research in academia and not liking competition
What are some symbols representing peasants/oppressed persons fighting back?
How to honestly answer questions from a girlfriend like "How did you find this place" without giving the impression I'm always talking about my exes?
What alternatives exist to at-will employment?
Can you perfectly wrap a cube with this blocky shape?
Why isn't aluminium involved in biological processes?
Draw a line nicely around notes
How to unload a Mathematica package?
Why do the faithful have to say "And with your spirit " in Catholic Mass?
Problem with interpolating function returned by NDEigensystem
Do aircraft cabins have suspension?
Decoding Every Top 100 Voting Ever
Why do legislative committees exist?
Comparing current element's sub-elements/child attributes with the following element's sub-elements/child attributes
XPath: Select first element with a specific attributeShould I use Elements or Attributes in XML?In a Schematron rule, how do i access the parent element of the current element?XPath to select element based on childs child valueSchematron test for text of content node (up to a certain position)Is it possible to restrict XSD attributes to follow a numerical order?Exclusive XPath testWhen using XSLT 2, Schematron ignores rules that have attributes in their contextXpath wildcard returns only the first elementCheck for duplicated data with multiple attribute in sibling elements - Schematron
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am trying to write schematron rule to compare an attribute of a current sub-element (End @value) in a loop with next sub-elements attribute(Origin @value). I am not sure if i am doing the right thing so here is my attempt
Here is my attempt:
<sch:rule context="test">
<sch:assert test="End/@value = following-sibling::test/Origin/@value " >Both the value are not Equal. </sch:assert>
</sch:rule>
This rule is working fine till the last element, the last element is expecting another element which is not present. the problem could be with "following-sibling" .
Here is XML file:
<tests>
<test x="-276.724" xEnd="-276.193">
<Origin value="36.599"/>
<End value="36.6"/>
</test>
<test x="-276.193" xEnd="-260.29">
<Origin value="36.6"/>
<End value="36.603"/>
</test>
<test x="-260.29" xEnd="-240.194">
<Origin value="36.603"/>
<End value="36.601"/>
</test>
<test x="-240.194" xEnd="-220.046">
<Origin value="36.601"/>
<End value="36.601"/>
</test>
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
Expected result:
As current sub-element (End @value) = next sub-elements attribute(Origin @value), the Output should be success.
Actual result.
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
foe this element i am getting assretion failure
xml xpath schematron
add a comment |
I am trying to write schematron rule to compare an attribute of a current sub-element (End @value) in a loop with next sub-elements attribute(Origin @value). I am not sure if i am doing the right thing so here is my attempt
Here is my attempt:
<sch:rule context="test">
<sch:assert test="End/@value = following-sibling::test/Origin/@value " >Both the value are not Equal. </sch:assert>
</sch:rule>
This rule is working fine till the last element, the last element is expecting another element which is not present. the problem could be with "following-sibling" .
Here is XML file:
<tests>
<test x="-276.724" xEnd="-276.193">
<Origin value="36.599"/>
<End value="36.6"/>
</test>
<test x="-276.193" xEnd="-260.29">
<Origin value="36.6"/>
<End value="36.603"/>
</test>
<test x="-260.29" xEnd="-240.194">
<Origin value="36.603"/>
<End value="36.601"/>
</test>
<test x="-240.194" xEnd="-220.046">
<Origin value="36.601"/>
<End value="36.601"/>
</test>
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
Expected result:
As current sub-element (End @value) = next sub-elements attribute(Origin @value), the Output should be success.
Actual result.
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
foe this element i am getting assretion failure
xml xpath schematron
add a comment |
I am trying to write schematron rule to compare an attribute of a current sub-element (End @value) in a loop with next sub-elements attribute(Origin @value). I am not sure if i am doing the right thing so here is my attempt
Here is my attempt:
<sch:rule context="test">
<sch:assert test="End/@value = following-sibling::test/Origin/@value " >Both the value are not Equal. </sch:assert>
</sch:rule>
This rule is working fine till the last element, the last element is expecting another element which is not present. the problem could be with "following-sibling" .
Here is XML file:
<tests>
<test x="-276.724" xEnd="-276.193">
<Origin value="36.599"/>
<End value="36.6"/>
</test>
<test x="-276.193" xEnd="-260.29">
<Origin value="36.6"/>
<End value="36.603"/>
</test>
<test x="-260.29" xEnd="-240.194">
<Origin value="36.603"/>
<End value="36.601"/>
</test>
<test x="-240.194" xEnd="-220.046">
<Origin value="36.601"/>
<End value="36.601"/>
</test>
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
Expected result:
As current sub-element (End @value) = next sub-elements attribute(Origin @value), the Output should be success.
Actual result.
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
foe this element i am getting assretion failure
xml xpath schematron
I am trying to write schematron rule to compare an attribute of a current sub-element (End @value) in a loop with next sub-elements attribute(Origin @value). I am not sure if i am doing the right thing so here is my attempt
Here is my attempt:
<sch:rule context="test">
<sch:assert test="End/@value = following-sibling::test/Origin/@value " >Both the value are not Equal. </sch:assert>
</sch:rule>
This rule is working fine till the last element, the last element is expecting another element which is not present. the problem could be with "following-sibling" .
Here is XML file:
<tests>
<test x="-276.724" xEnd="-276.193">
<Origin value="36.599"/>
<End value="36.6"/>
</test>
<test x="-276.193" xEnd="-260.29">
<Origin value="36.6"/>
<End value="36.603"/>
</test>
<test x="-260.29" xEnd="-240.194">
<Origin value="36.603"/>
<End value="36.601"/>
</test>
<test x="-240.194" xEnd="-220.046">
<Origin value="36.601"/>
<End value="36.601"/>
</test>
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
Expected result:
As current sub-element (End @value) = next sub-elements attribute(Origin @value), the Output should be success.
Actual result.
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
foe this element i am getting assretion failure
xml xpath schematron
xml xpath schematron
edited Mar 26 at 7:55
halfelf
7,00511 gold badges35 silver badges49 bronze badges
7,00511 gold badges35 silver badges49 bronze badges
asked Mar 26 at 7:19
Lakshmikanth GrLakshmikanth Gr
41 silver badge4 bronze badges
41 silver badge4 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I assume that you are using the XSLT 2.0 binding.
If so, End/@value = following-sibling::test/Origin/@value is comparing the value attribute of the End child element with the value attribute of the Origin child element of every following sibling test element. That evaluates to true if any of the Origin/@value values match. That's probably not what you want.
The End and Origin elements are both children of the test element, which is the context for your XPath expressions. If you want to test the two child elements:
<sch:rule context="test">
<sch:assert test="End/@value = Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
If you want to test the End/@value from the current test element with the Origin/@value from the following test element but not fail when there is no following test element:
<sch:rule context="test[exists(following-sibling::test[1])]">
<sch:assert test="End/@value = following-sibling::test[1]/Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
The [1] limits the XPath to selecting just the first test.
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%2f55351669%2fcomparing-current-elements-sub-elements-child-attributes-with-the-following-ele%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
I assume that you are using the XSLT 2.0 binding.
If so, End/@value = following-sibling::test/Origin/@value is comparing the value attribute of the End child element with the value attribute of the Origin child element of every following sibling test element. That evaluates to true if any of the Origin/@value values match. That's probably not what you want.
The End and Origin elements are both children of the test element, which is the context for your XPath expressions. If you want to test the two child elements:
<sch:rule context="test">
<sch:assert test="End/@value = Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
If you want to test the End/@value from the current test element with the Origin/@value from the following test element but not fail when there is no following test element:
<sch:rule context="test[exists(following-sibling::test[1])]">
<sch:assert test="End/@value = following-sibling::test[1]/Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
The [1] limits the XPath to selecting just the first test.
add a comment |
I assume that you are using the XSLT 2.0 binding.
If so, End/@value = following-sibling::test/Origin/@value is comparing the value attribute of the End child element with the value attribute of the Origin child element of every following sibling test element. That evaluates to true if any of the Origin/@value values match. That's probably not what you want.
The End and Origin elements are both children of the test element, which is the context for your XPath expressions. If you want to test the two child elements:
<sch:rule context="test">
<sch:assert test="End/@value = Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
If you want to test the End/@value from the current test element with the Origin/@value from the following test element but not fail when there is no following test element:
<sch:rule context="test[exists(following-sibling::test[1])]">
<sch:assert test="End/@value = following-sibling::test[1]/Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
The [1] limits the XPath to selecting just the first test.
add a comment |
I assume that you are using the XSLT 2.0 binding.
If so, End/@value = following-sibling::test/Origin/@value is comparing the value attribute of the End child element with the value attribute of the Origin child element of every following sibling test element. That evaluates to true if any of the Origin/@value values match. That's probably not what you want.
The End and Origin elements are both children of the test element, which is the context for your XPath expressions. If you want to test the two child elements:
<sch:rule context="test">
<sch:assert test="End/@value = Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
If you want to test the End/@value from the current test element with the Origin/@value from the following test element but not fail when there is no following test element:
<sch:rule context="test[exists(following-sibling::test[1])]">
<sch:assert test="End/@value = following-sibling::test[1]/Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
The [1] limits the XPath to selecting just the first test.
I assume that you are using the XSLT 2.0 binding.
If so, End/@value = following-sibling::test/Origin/@value is comparing the value attribute of the End child element with the value attribute of the Origin child element of every following sibling test element. That evaluates to true if any of the Origin/@value values match. That's probably not what you want.
The End and Origin elements are both children of the test element, which is the context for your XPath expressions. If you want to test the two child elements:
<sch:rule context="test">
<sch:assert test="End/@value = Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
If you want to test the End/@value from the current test element with the Origin/@value from the following test element but not fail when there is no following test element:
<sch:rule context="test[exists(following-sibling::test[1])]">
<sch:assert test="End/@value = following-sibling::test[1]/Origin/@value"
>Both the value are not Equal. </sch:assert>
</sch:rule>
The [1] limits the XPath to selecting just the first test.
answered Mar 26 at 9:45
Tony GrahamTony Graham
4,3567 silver badges17 bronze badges
4,3567 silver badges17 bronze badges
add a comment |
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
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%2f55351669%2fcomparing-current-elements-sub-elements-child-attributes-with-the-following-ele%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