Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается распарсить xml / 25 сообщений из 40, страница 1 из 2
23.11.2017, 13:18
    #39558205
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Здравствуйте. В мою программу приходит строка в виде xml-документа. Мне нужно её парсить (превращать в нужные объекты). Использую базовый JAXB. Расставил все комментарии, написал нужный код, но почему-то он не парсит нужный объект. Пример XML:
Здравствуйте. В мою программу приходит строка в виде xml-документа. Мне нужно её парсить (превращать в нужные объекты). Использую базовый JAXB. Расставил все комментарии, написал нужный код, но почему-то он не парсит нужный объект. Пример XML:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<documentrequest type="staff" mode_display="employ_and_dismiss" subdiv="">
<staff>
<staffnode last_name="Бердников" first_name="Дмитрий" middle_name="" id_internal="1333771" id_external=""
tabel_id="0000000000" date_begin="01.01.1980" date_action="01.01.1980" id_subdiv_external=""
id_appoint_external="{53B582F1-ECEB-4581-BC06-19C24228B11F}"
id_graphwork_external="{3A1E523D-3936-4E20-A08A-D07ABAE5BC20}" id_subdiv_internal="1333419"
id_appoint_internal="1333397" id_graphwork_internal="1333495" date_dismiss="" path_photo="">
<identifiers/>
</staffnode>
<staffnode last_name="Богаткина" first_name="Светлана" middle_name="Владимировна" id_internal="1333772"
id_external="" tabel_id="0000000000" date_begin="01.01.1980" date_action="01.01.1980"
id_subdiv_external="" id_appoint_external="{53B582F1-ECEB-4581-BC06-19C24228B11F}"
id_graphwork_external="{3A1E523D-3936-4E20-A08A-D07ABAE5BC20}" id_subdiv_internal="1333411"
id_appoint_internal="1333397" id_graphwork_internal="1333495" date_dismiss="" path_photo="">
<identifiers>
<identifier type_identifier="family_number" id_card="7466" identifier="9236095"
identifier_transformed="9236095" date_begin_action="23.08.2016" date_end_action="01.01.3015"
prohibit="false"/>
</identifiers>

</staffnode>
<staffnode last_name="Борзунова" first_name="Лилия" middle_name="Владимировна" id_internal="1333773"
id_external="" tabel_id="0000000000" date_begin="01.01.1980" date_action="01.01.1980"
id_subdiv_external="" id_appoint_external="{14FBA985-0576-485A-8ED8-D6E81DC92BFC}"
id_graphwork_external="{3A1E523D-3936-4E20-A08A-D07ABAE5BC20}" id_subdiv_internal="1333429"
id_appoint_internal="1333389" id_graphwork_internal="1333495" date_dismiss="" path_photo="">
<identifiers/>
</staffnode>
<staffnode last_name="Бут" first_name="Наталья" middle_name="Николаевна" id_internal="1333775" id_external=""
tabel_id="0000000000" date_begin="01.01.1980" date_action="01.01.1980" id_subdiv_external=""
id_appoint_external="{53B582F1-ECEB-4581-BC06-19C24228B11F}"
id_graphwork_external="{3A1E523D-3936-4E20-A08A-D07ABAE5BC20}" id_subdiv_internal="1333409"
id_appoint_internal="1333397" id_graphwork_internal="1333495" date_dismiss="" path_photo="">
<identifiers/>
</staffnode>
</staff>
</documentrequest>


Мой код, который занимается парсингом:

//parse the response with the list of employees
public static List<Employee> parseXmlStaff(String xml) throws JAXBException {
DocumentRequest documentRequest = (DocumentRequest) parse(xml,
Employee.class, AccessCard.class,DocumentRequest.class);
return documentRequest.getStaff();
}
private static Object parse(String xml, Class...classToBeBound) throws JAXBException {
Reader reader = new StringReader(xml);

JAXBContext context = JAXBContext.newInstance(classToBeBound);
Unmarshaller unmarshaller = context.createUnmarshaller();

return unmarshaller.unmarshal(reader);
}


Классы объектов, которые парсятся:

@XmlRootElement(name = "documentrequest")
public class DocumentRequest {
private List<Employee> staff;
//------------- Getters and Setters ----------------------------
@XmlElement(name = "staffnode")
@XmlElementWrapper(name = "staff")
public List<Employee> getStaff() {
return staff;
}
public void setStaff(List<Employee> staff) {
this.staff = staff;
}

}


@XmlRootElement(name = "staffnode")
public class Employee {
private String firstName;
private String middleName;
private String lastName;
private String pathToPhoto;
private int idInternal;
private String idExternal;
private int tabelId;
private Date dateBegin;
private Date dateAction;
private String idSubdivExternal;
private String idGraphworkExternal;
private String idAppointExternal;
private int idSubdivInternal;
private int idGraphworkInternal;
private int idAppointInternal;
private Date dateDismiss;

private List<AccessCard> accessCards;

public Employee() {
}

public Employee(String firstName, String middleName, String lastName,
String pathToPhoto, int idInternal, String idExternal, int tabelId,
Date dateBegin, Date dateAction, String idSubdivExternal,
String idGraphworkExternal, String idAppointExternal, int idSubdivInternal,
int idGraphworkInternal, int idAppointInternal, Date dateDismiss) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.pathToPhoto = pathToPhoto;
this.idInternal = idInternal;
this.idExternal = idExternal;
this.tabelId = tabelId;
this.dateBegin = dateBegin;
this.dateAction = dateAction;
this.idSubdivExternal = idSubdivExternal;
this.idGraphworkExternal = idGraphworkExternal;
this.idAppointExternal = idAppointExternal;
this.idSubdivInternal = idSubdivInternal;
this.idGraphworkInternal = idGraphworkInternal;
this.idAppointInternal = idAppointInternal;
this.dateDismiss = dateDismiss;
}

@XmlAttribute(name = "first_name")
public String getFirstName() {
return firstName;
}


public void setFirstName(String firstName) {
this.firstName = firstName;
}

@XmlAttribute(name = "middle_name")
public String getMiddleName() {
return middleName;
}

public void setMiddleName(String middleName) {
this.middleName = middleName;
}
//some code: getters and setters

@XmlAttribute(name = "id_appoint_internal")
public int getIdAppointInternal() {
return idAppointInternal;
}

public void setIdAppointInternal(int idAppointInternal) {
this.idAppointInternal = idAppointInternal;
}

@XmlAttribute(name = "date_dismiss")
@XmlJavaTypeAdapter(DateAdapter.class)
public Date getDateDismiss() {
return dateDismiss;
}

public void setDateDismiss(Date dateDismiss) {
this.dateDismiss = dateDismiss;
}

@XmlElementWrapper(name = "identifiers")
@XmlElement("identifier")
public List<AccessCard> getAccessCard() {
return accessCards;
}

public void setAccessCard(List<AccessCard> accessCards) {
this.accessCards = accessCards;
}
}

@XmlRootElement(name = "identifier")
public class AccessCard {
private String TypeIdentifier;
private int idCard;
private int identifier;
private int identifierTransformed;
private Date dateBegin;
private Date dateEnd;
private boolean prohibit;

@XmlAttribute(name = "type_identifier")
public String getTypeIdentifier() {
return TypeIdentifier;
}

public void setTypeIdentifier(String typeIdentifier) {
TypeIdentifier = typeIdentifier;
}

@XmlAttribute(name = "id_card")
public int getIdCard() {
return idCard;
}

public void setIdCard(int idCard) {
this.idCard = idCard;
}

@XmlAttribute(name = "identifier")
public int getIdentifier() {
return identifier;
}

public void setIdentifier(int identifier) {
this.identifier = identifier;
}

//some code
}

Проблема, что он не получает карточки доступа (тег identifier), всё остальное - получает.
...
Рейтинг: 0 / 0
24.11.2017, 09:59
    #39558767
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Нашёл ошибку с импортом (импортировал не ту аннотацию XmlElement). Исправил. Но теперь вылетает NPE. Как раз при анмаршаллинге.
...
Рейтинг: 0 / 0
24.11.2017, 10:36
    #39558798
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Для начала попробуйте везде заполнить identifiers и identifier.
...
Рейтинг: 0 / 0
24.11.2017, 10:43
    #39558802
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,
В смысле "заполнить"? В xml? Так он мне приходит именно в таком виде. Я не выбираю. У кого-то есть карта доступа, у кого-то - нет. Нужно как-то работать с этим.
...
Рейтинг: 0 / 0
24.11.2017, 10:54
    #39558811
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Но, как я понял, клиентский код ваш. Я когда-то с jaxb работал, забыл, но помнится, что были для аннотаций параметры nillable. Надо Вам разобраться со случаем когда коллекция тэгов пуста.
...
Рейтинг: 0 / 0
24.11.2017, 10:55
    #39558813
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,
Попробовал в тестовом режиме дать ему xml, где у сотрудников заполнены все карты доступа. И всё равно NPE. Видимо, что-то в аннотациях.
...
Рейтинг: 0 / 0
24.11.2017, 10:57
    #39558814
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Сама получаемая ошибка:
consoleException in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.xml.internal.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:289)
at com.sun.xml.internal.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:253)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Scope.add(Scope.java:106)
at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty$ReceiverImpl.receive(ArrayERProperty.java:198)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:597)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)
at org.limantrade.model.xml.XmlParser.parse(XmlParser.java:59)
at org.limantrade.model.xml.XmlParser.parseXmlStaff(XmlParser.java:18)
at org.limantrade.model.PercoConnectorMock.getStaffList(PercoConnectorMock.java:42)
at org.limantrade.model.MainModel.loadTableModelEmployees(MainModel.java:68)
at org.limantrade.model.MainModel.loadTableModel(MainModel.java:51)
at org.limantrade.controller.MainController.onRefreshTable(MainController.java:29)
at org.limantrade.view.ViewGUI.fireUpdateTable(ViewGUI.java:163)
at org.limantrade.view.guicomponents.PanelTableWithButton.lambda$addComponents$0(PanelTableWithButton.java:57)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
...
Рейтинг: 0 / 0
24.11.2017, 11:04
    #39558826
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Попробуйте
@XmlElementWrapper(name = "identifiers" nillable=true)
...
Рейтинг: 0 / 0
24.11.2017, 11:11
    #39558835
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,

Настораживает, что не все атрибуты для identifire представлены в классе. Попробуйте в самом первом staffnode убрать тэги и также как и для других укказать <identifires/>.
...
Рейтинг: 0 / 0
24.11.2017, 11:15
    #39558839
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,
Увы, не помогло (хотя я тоже подумал, что может быть из-за этого).
...
Рейтинг: 0 / 0
24.11.2017, 11:17
    #39558840
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery ShiskinValery Shiskin,

Настораживает, что не все атрибуты для identifire представлены в классе. Попробуйте в самом первом staffnode убрать тэги и также как и для других укказать <identifires/>.
Почему не все? Вроде все, да и я думаю, это не важно. Просто он будет их пропускать, и ничего не делать. Будет заполнять только те поля, для которых есть соот-щие атрибуты.
...
Рейтинг: 0 / 0
24.11.2017, 11:20
    #39558841
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery ShiskinValery Shiskin,
Попробуйте в самом первом staffnode убрать тэги и также как и для других укказать <identifires/>.
Что-то не понял, что Вы предлагаете.
...
Рейтинг: 0 / 0
24.11.2017, 11:24
    #39558844
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Код: java
1.
2.
3.
4.
5.
6.
public List<AccessCard> getAccessCards() {
    if(this.accessCards== null) {
        this.accessCards= new ArrayList();
    }
    return this.accessCards;
}
...
Рейтинг: 0 / 0
24.11.2017, 11:28
    #39558848
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Первое, это исправить
@XmlElement("identifier")

на

@XmlElement(name="identifier")

Если опять не пройдет (в чем я сомневаюсь), то во втором тэге <staffnode> замените Ваш <identifiers ... > на пустой тэг <identifires/>
...
Рейтинг: 0 / 0
24.11.2017, 11:38
    #39558860
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery ShiskinMaxLich,

Первое, это исправить
@XmlElement("identifier")

на

@XmlElement(name="identifier")

Если опять не пройдет (в чем я сомневаюсь), то во втором тэге <staffnode> замените Ваш <identifiers ... > на пустой тэг <identifires/>
1-ое, как я писал выше, я уже сделал, и не помогло. По второму сейчас попробую что-нибудь.
...
Рейтинг: 0 / 0
24.11.2017, 11:42
    #39558864
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Blazkowicz,
хм, это помогло. Но хотелось бы решить эту задачу средствами JAXB. Надо почитать про пустные коллекции в xml.
...
Рейтинг: 0 / 0
24.11.2017, 11:47
    #39558871
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Я взял Ваш код и запустил. Все работает, после исправления

@XmlElement("identifier")

на

@XmlElement(name="identifier")

Вы нигде не говорили, что исправили эту ошибку.
...
Рейтинг: 0 / 0
24.11.2017, 11:53
    #39558877
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,

Правда мне пришлось сделать свой date Adapter, но это не должно повлиять.
...
Рейтинг: 0 / 0
24.11.2017, 11:55
    #39558883
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLichхм, это помогло. Но хотелось бы решить эту задачу средствами JAXB. Надо почитать про пустные коллекции в xml.
JAXB сам такой код генерит по схеме. Он, ведь, даже не знает какой вам тип коллекции нужен. Так что не морочте голову.
...
Рейтинг: 0 / 0
24.11.2017, 12:13
    #39558901
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Valery Shiskin,

Все-таки, еще раз проверьте import операторы.
...
Рейтинг: 0 / 0
24.11.2017, 13:04
    #39558954
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Попробовал закомментить код в геттер:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
    @XmlElementWrapper(name = "identifiers",nillable = true)
    @XmlElement(name = "identifier")
    public List<AccessCard> getAccessCards() {
/*        if(this.accessCards == null) {
            this.accessCards = new ArrayList<>();
        }*/
        return accessCards;
    }


И скормил ему такой xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" standalone="yes"?>
<documentrequest type="staff" mode_display="employ_and_dismiss" subdiv="">
    <staff>
        <staffnode last_name="Шевчук" first_name="Александр" middle_name="Михайлович" id_internal="7464"
                   id_external="134381" tabel_id="333333" date_begin="23.08.2016" date_action="23.08.2016"
                   id_subdiv_external="{553C5636-6DC0-4F91-8045-A631D466D836}"
                   id_appoint_external="{8FB709D9-7CAB-441D-ABD5-367449ABF623}"
                   id_graphwork_external="{3F26F519-6A39-4B01-A784-C33CEFF12A1C}" id_subdiv_internal="1"
                   id_appoint_internal="1" id_graphwork_internal="0" date_dismiss="" path_photo="">
            <identifiers/>
            <sms_phones/>
        </staffnode>
        <staffnode last_name="Шулаков" first_name="Максим" middle_name="Валерьевич" id_internal="7471"
                   id_external="134384" tabel_id="123" date_begin="07.11.2017" date_action="07.11.2017"
                   id_subdiv_external="{553C5636-6DC0-4F91-8045-A631D466D836}"
                   id_appoint_external="{8FB709D9-7CAB-441D-ABD5-367449ABF623}"
                   id_graphwork_external="{3F26F519-6A39-4B01-A784-C33CEFF12A1C}" id_subdiv_internal="1"
                   id_appoint_internal="1" id_graphwork_internal="0" date_dismiss="" path_photo="">
            <identifiers/>
            <sms_phones/>
        </staffnode>
    </staff>
</documentrequest>


Всё прошло, объекты AccessCard получились пустыми (как и ожидалось).

Но если после этого ему скармливать другой xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<?xml version="1.0" standalone="yes"?>
<documentrequest type="staff" mode_display="employ_and_dismiss" subdiv="">
    <staff>
        <staffnode last_name="Шевчук" first_name="Александр" middle_name="Михайлович" id_internal="7464"
                   id_external="134381" tabel_id="333333" date_begin="23.08.2016" date_action="23.08.2016"
                   id_subdiv_external="{553C5636-6DC0-4F91-8045-A631D466D836}"
                   id_appoint_external="{8FB709D9-7CAB-441D-ABD5-367449ABF623}"
                   id_graphwork_external="{3F26F519-6A39-4B01-A784-C33CEFF12A1C}" id_subdiv_internal="1"
                   id_appoint_internal="1" id_graphwork_internal="0" date_dismiss="" path_photo="">
            <identifiers>
                <identifier type_identifier="family_number" id_card="7466" identifier="9236095"
                            identifier_transformed="9236095" date_begin_action="23.08.2016" date_end_action="01.01.3015"
                            prohibit="false"/>
            </identifiers>
            <sms_phones/>
        </staffnode>
        <staffnode last_name="Шулаков" first_name="Максим" middle_name="Валерьевич" id_internal="7471"
                   id_external="134384" tabel_id="123" date_begin="07.11.2017" date_action="07.11.2017"
                   id_subdiv_external="{553C5636-6DC0-4F91-8045-A631D466D836}"
                   id_appoint_external="{8FB709D9-7CAB-441D-ABD5-367449ABF623}"
                   id_graphwork_external="{3F26F519-6A39-4B01-A784-C33CEFF12A1C}" id_subdiv_internal="1"
                   id_appoint_internal="1" id_graphwork_internal="0" date_dismiss="" path_photo="">
            <identifiers>
                <identifier type_identifier="family_number" id_card="7472" identifier="4428200"
                            identifier_transformed="4428200" date_begin_action="07.11.2017" date_end_action="01.01.3015"
                            prohibit="false"/>
            </identifiers>
            <sms_phones/>
        </staffnode>
    </staff>
</documentrequest>


То опять такая же ошибка.
...
Рейтинг: 0 / 0
24.11.2017, 13:06
    #39558957
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
И как я и ожидал, если файл смешанный (с заполненными тегами и с пустыми), то тоже ошибка вылетает.
...
Рейтинг: 0 / 0
24.11.2017, 13:17
    #39558965
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Попробовал сгенерировать код с помощью ИДЕИ: код, конечно, ужасный, и с ним тяжело работать, но заметил, что он тоже в геттере сформировал проверку на нулл:
Код: java
1.
2.
3.
    if(this.accessCards== null) {
        this.accessCards= new ArrayList();
    }
...
Рейтинг: 0 / 0
24.11.2017, 13:18
    #39558968
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
MaxLich,

Я полностью, без изменений, кроме DateAdapter и исправленной ошибки, взял ваш код, ваш xml (copy/paste) запустил у себя и напечатал. Без проблем. Чудес не бывает. Посмотрите, как у вас сформирована строка знаков с xml кодом, еще раз посмотрите import.
...
Рейтинг: 0 / 0
24.11.2017, 13:20
    #39558972
MaxLich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается распарсить xml
Поэтому решил оставить так, как было: с проверкой на нулл внутри геттера и со всеми нужными аннотациями. Всем спасибо. Удачи!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается распарсить xml / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]