0

Java を使用して、この xml スニペットの PolylinePoint 要素の数をカウントするにはどうすればよいですか (重要なのは、この xml がファイルではなく文字列であるという事実です)。

    <LocationInformationRequest>
            <InitialInput>
                <GeoRestriction>
                    <Area>
                        <PolylinePoint>
                            <Longitude>88.1</Longitude>
                            <Latitude>88.2</Latitude>
                            <Altitude>88.3</Altitude>
                        </PolylinePoint>
                        <PolylinePoint>
                            <Longitude>88.4</Longitude>
                            <Latitude>88.5</Latitude>
                            <Altitude>88.6</Altitude>
                        </PolylinePoint>
                        <PolylinePoint>
                            <Longitude>88.7</Longitude>
                            <Latitude>88.8</Latitude>
                            <Altitude>88.9</Altitude>
                        </PolylinePoint>
                    </Area>
                </GeoRestriction>
            </InitialInput>
        </LocationInformationRequest>

xml をファイルとして使用すると、この問題を簡単に解決できます。しかし、文字列の場合はより困難です。何か案は?

助けてくれてありがとう!

4

3 に答える 3

0

正規表現を使用できます:

        String str="<PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint>";
        Pattern p = Pattern.compile("<PolylinePoint>");
        Matcher m=p.matcher(str);
        int res=0;
        while (m.find()) {
            res++;
        }
        System.out.println(res++);
于 2013-07-09T13:59:50.953 に答える
0
于 2013-07-09T13:58:14.113 に答える
0

Document drom String を作成してみませんか?

ドキュメント document = builder.parse( new InputSource( new StringReader( xmlString ) ) );

その後、xPath を簡単に使用できます。

于 2013-07-09T14:22:33.420 に答える