0

我想获得围绕文本节点的元素节点。根据这个元素包含一个文本节点,反之亦然,一个文本节点应该被一个元素节点包围。

我需要元素节点(openingTime)来获取属性(day),但是 NodeList (从节点openingHours调用的 getChildNodes() )只给了我文本节点,它们的父节点是元素节点(openingHours),但不是围绕文本节点的那个,而不是上面的那个。如果有人问,我需要使用 DOM,因为据我了解,它是最快的。

这是 XML:

<?xml version="1.0"?>

<stores>
<store name = "the Name of the Store">
    <category>2nd Hand</category>
    <locationAdress>sonstwo 18b, 12345 Bla</locationAdress>
    <telephoneNumber>1234567812</telephoneNumber>
    <openingHours>
        <!-- Opening Hours, day permitted values: 1(Monday) - 7(Sunday) and 8 (workweek) -->
        <openingTime day = "1">7:00 - 13:00 15:00 - 18:00</openingTime>
        <openingTime day = "2">7:00 - 13:00 15:00 - 18:00</openingTime>
        <openingTime day = "3">7:00 - 13:00 15:00 - 18:00</openingTime>
        <openingTime day = "4">7:00 - 13:00 15:00 - 18:00</openingTime>
        <openingTime day = "5">7:00 - 13:00 15:00 - 18:00</openingTime>
    </openingHours>
</store>
    </stores>

这是我的java代码:

NodeList hoursList = storeElement.getElementsByTagName("openingHours").item(0).getChildNodes();
            for (int y = 0; y < hoursList.getLength(); y++) {
                Node hoursNode = hoursList.item(y);
                boolean isElement = hoursNode.getNodeType() == Node.ELEMENT_NODE;
                boolean hasChild = hoursNode.getChildNodes().getLength() != 0;
                String nameParent = hoursNode.getParentNode().getNodeName();

boolean isElement 为 false,hasChild 也为 false,String nameParent 为 openingHours。

4

0 回答 0