Найдено результатов: 1

вставить/заменить тег XML в XmlDocument

У меня есть XmlDocument в java, созданный с помощью парсера Weblogic XmlDocument .

Я хочу заменить содержимое тега в этом XMLDocument своими собственными данными или вставить тег, если его там нет.

<customdata>
   <tag1 />
   <tag2>mfkdslmlfkm</tag2>
   <location />
   <tag3 />
</customdata>

Я, например, хочу вставить некоторые URL в тег location:

<location>http://something</location>

но в противном случае оставьте XML как есть.

В настоящее время я использую XMLCursor :

    XmlObject xmlobj = XmlObject.Factory.parse(a.getCustomData(), options);
    XmlCursor xmlcur = xmlobj.newCursor();

    while (xmlcur.hasNextToken()) {
      boolean found = false;
      if (xmlcur.isStart() && "schema-location".equals(xmlcur.getName().toString())) {
        xmlcur.setTextValue("http://replaced");
        System.out.println("replaced");
        found = true;
      } else if (xmlcur.isStart() && "customdata".equals(xmlcur.getName().toString())) {
        xmlcur.push();
      } else if (xmlcur.isEnddoc()) {
        if (!found) {
          xmlcur.pop();
          xmlcur.toEndToken();
          xmlcur.insertElementWithText("schema-location", "http://inserted");
          System.out.println("inserted");
        }

      }
      xmlcur.toNextToken();
    }

Я попытался найти "quick" xquery способ сделать это, так как XmlDocument имеет метод execQuery , но не нашел его очень легким.

У кого-нибудь есть лучший способ, чем этот? Это кажется немного сложным.

java   xml   xquery    

454   4   21:08, 8th August, 2020