blob: bfaca303444f55abec176596829b1de37481ef0b [file]
/* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package xmlobject.checkin;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class XPathTest {
@Test
void testPath() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d><c>val2</c></d>" +
"</b>" +
"<c>val3</c>" +
"</a>");
try (XmlCursor c = obj.newCursor()) {
c.selectPath(".//b/c");
int selCount = c.getSelectionCount();
assertEquals(1, selCount, "SelectionCount");
while (c.hasNextSelection()) {
c.toNextSelection();
assertTrue(c.isStart(), "OnStartElement");
assertEquals("val1", c.getTextValue(), "TextValue");
}
}
}
@Test
void testPath2() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d>" +
"<c>val2</c>" +
"<b><c>val3</c></b>" +
"</d>" +
"</b>" +
"<c>val4</c>" +
"</a>");
try (XmlCursor c = obj.newCursor()) {
c.selectPath(".//b/c");
int selCount = c.getSelectionCount();
assertEquals(2, selCount, "SelectionCount");
assertTrue(c.hasNextSelection(), "hasNextSelection");
c.toNextSelection();
assertTrue(c.isStart(), "OnStartElement");
assertEquals("val1", c.getTextValue(), "TextValue");
assertTrue(c.hasNextSelection(), "hasNextSelection2");
c.toNextSelection();
assertTrue(c.isStart(), "OnStartElement2");
assertEquals("val3", c.getTextValue(), "TextValue2");
}
}
@Test
void testPath3() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d>" +
"<c>val2</c>" +
"<b>" +
"<c>val3" +
"<c>val5</c>" +
"</c>" +
"</b>" +
"</d>" +
"</b>" +
"<c>val4</c>" +
"</a>");
try (XmlCursor c = obj.newCursor()) {
c.selectPath(".//b/c//c");
int selCount = c.getSelectionCount();
assertEquals(1, selCount, "SelectionCount");
while (c.hasNextSelection()) {
c.toNextSelection();
System.out.println(" -> " + c.getObject());
assertTrue(c.isStart(), "OnStartElement");
assertEquals("val5", c.getTextValue(), "TextValue");
}
}
}
}