Как написать и получить значения XML из файла конфигурации - PullRequest
0 голосов
/ 25 апреля 2018

Мне нужно получить значение метки xml в зависимости от id , каждый идентификатор имеет соответствующее значение метки, и мне нужно отобразить его на странице моего веб-объекта. xml-данные будут помещены в файл конфигурации и будут вызывать его для получения значений меток.

sample.xml

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

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

-<properties>

<comment>This is how we can have properties as xml</comment>

<entry key="shipping_method_id">**0**</entry>

<entry key="shipping_method_label">Fixed Shipping</entry>

<entry key="shipping_method_id">0</entry>

<entry key="shipping_method_label">**Fixed Shipping**</entry>

</properties>

ниже - мой java-код для получения других тегов. Как я буду называть метку метода? спасибо за вашу помощь!

public NSDictionary parseShipment(String shipString) {
        String carrier = extractString(shipString, "<enum>", "</enum>", 0);
        String dateString = extractString(shipString, "<date>", "</date>", 0);
        String trackingNumber = extractString(shipString, "<track>", "</track>", 0);
        String oms = extractString(shipString, "<status>", "</status>", 0);

        if (carrier == null) carrier = "";
        if (trackingNumber == null) trackingNumber = "";
        if (dateString == null) dateString = "";
        if (oms == null) oms = "";

        // parse the ship date
        NSTimestamp shipdate = null;
        int markerIndex = dateString.indexOf("T");
        if (markerIndex > 0) {
            dateString = dateString.substring(0, markerIndex);
            try { shipdate = (NSTimestamp) dateformatter.parseObject(dateString); }
            catch (ParseException e) { }
        }

        NSMutableDictionary returnDict = new NSMutableDictionary();
        returnDict.setObjectForKey(carrier, "carrier");
        returnDict.setObjectForKey(trackingNumber, "trackingNumber");
        returnDict.setObjectForKey(oms, "oms");
        System.out.println(oms);
        if (shipdate == null)
            returnDict.setObjectForKey(dateString, "shipDatetime");
        else
            returnDict.setObjectForKey(shipdate, "shipDatetime");

1 Ответ

0 голосов
/ 27 апреля 2018

Самый надежный способ - использовать реальный анализатор XML.Есть десятки из них (даже в самой JDK) и тысячи статей, описывающих, как это сделать.Вот относительно недавний .

...