문제

I have XML document that I parse with jDOM and then try to take all nodes that satisfies XPath expression, but XPath always returns no elements. Here is my XML file:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Using aggregate instance. Should pass -->

<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml">
    <net id="rootAgregate" type="http://www.cs.stu.cn.ua/jess/enets">
        <page id="main">
            <transition id="agregate1">
                <name>
                    <text>agregate1</text>
                    <graphics>
                        <offset x="22" y="-14"/>
                    </graphics>
                </name>
                <definition type="aggregate" subType="myAggregate"/>
                <graphics>
                    <position x="950" y="484"/>
                </graphics>
            </transition>
            <transition id="Input1">
                <name>
                    <text>agregate1</text>
                    <graphics>
                        <offset x="22" y="-14"/>
                    </graphics>
                </name>
                <definition type="input"/>
                <graphics>
                    <position x="950" y="484"/>
                </graphics>
            </transition>
            <transition id="Output1">
                <name>
                    <text>agregate1</text>
                    <graphics>
                        <offset x="22" y="-14"/>
                    </graphics>
                </name>
                <definition type="output"/>
                <graphics>
                    <position x="950" y="484"/>
                </graphics>
            </transition>
        </page>
    </net>
</pnml>

Here is my XPath code:

private List<String> getChildNames(Document parsedDom) throws JDOMException {
        ArrayList<String> childNames = new ArrayList<String>();
        XPath childCounter = XPath.newInstance("//definition[@type=\"aggregate\"]");
        ListIterator<Element> listIterator = childCounter.selectNodes(parsedDom).listIterator();

        while (listIterator.hasNext()) {
            Element definitionElement = listIterator.next();
            childNames.add(definitionElement.getAttributeValue("subType"));
        }

        return childNames;
    }

I checked my XPath expression here: http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm and it works.

Why it doesn't work in my code?

Thank you in advance.

올바른 솔루션이 없습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top