Чтение одного указанного c элемента в полезной нагрузке xml - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь прочитать информацию из указанного элемента c, вот моя xml полезная нагрузка:

<?xml version="1.0"?>
<tns:createTicket xmlns:tns="">
<contact>
    <gender>F</gender>
    <firstname>ANNE</firstname>
    <lastname>MP</lastname>
    <phone>88</phone>
  </contact>
  <issue>
    <occurrenceDate>2020-03-23T00:01:00+01:00</occurrenceDate>
    <location>
      <streetName1>Rpp</streetName1>
      <zipCode>999999</zipCode>
      <city>AMMM</city>
      <countryCode>FR</countryCode>
    </location>
    <typeCode>GAM</typeCode>

    <otherInformations>
      <name>Ser</name>
      <value>Two</value>
    </otherInformations>

    <otherInformations>
      <name>deliveryAddress</name>
      <value>RURU</value>
    </otherInformations>

    **<otherInformations>
      <name>**serDat**</name>
      <value>**2020-03-23**</value>
    </otherInformations>**

    <otherInformations>
      <name>gracias</name>
      <value>False</value>
    </otherInformations>
  </issue>
</tns:createTicket>

Как я могу прочитать информацию из этого указанного элемента c из полезная нагрузка:

serDat 2020-03-23 ​​

Я использую библиотеку Dom в своем коде, но я могу только читать информацию из первых «других данных» элемент, а не другой. У меня нет этой проблемы, когда я хочу прочитать информацию из уникального элемента в полезной нагрузке XML. РЕДАКТИРОВАТЬ: я пробовал xPath Librairy

var factory = DocumentBuilderFactory.newInstance()
    var builder = factory.newDocumentBuilder()
    var document = builder.parse(new InputSource(new StringReader(payload)));
    //var rootElement = document.getDocumentElement()
    var xpf = XPathFactory.newInstance()
    var xpath = xpf.newXPath()
    print(payload)
    var nodes = xpath.evaluate("/createTicketRequest/payload/issue/otherInformations", document, XPathConstants.NODESET) as NodeList
    for(i in 0..nodes.getLength()) {
      print(nodes.item(i).getNodeValue()); 
    }

Но результат печати (node.item (i) .getNodeValue ()); NULL

Спасибо за помощь!

...