2016-04-03 3 views
1

У меня есть JournalArticle web content со следующим разделом.Анализ и обновление содержимого веб-сайта liferay

<root available-locales="en_GB" default-locale="en_GB"> 
    <dynamic-element name="image-id" type="text" index-type="keyword" index="0"> 
     <dynamic-content language-id="en_GB"> 
      <![CDATA[ENG_ID1]]> 
     </dynamic-content> 
    </dynamic-element> 
    <dynamic-element name="main-picture" type="document_library" index-type="keyword" index="0"> 
     <dynamic-element name="main-picture-url" index="0" type="text" index-type="keyword"> 
      <dynamic-content language-id="en_GB"> 
       <![CDATA[http://localhost:8080/documents/11111/22222/Image1/c9ff3112-22a1-4a45-a5d7-ea0b687fa34f?t=1450349423000]]> 
      </dynamic-content> 
     </dynamic-element> 
     <dynamic-content language-id="en_GB"> 
      <![CDATA[/documents/11111/22222/Image2/c9ff3113-23a1-4a35-a1d7-ea0b127fa34f?t=1450349423000]]> 
     </dynamic-content> 
    </dynamic-element> 
</root> 

Я пытаюсь разобрать через XML и обновить URL внутри main-picture-url с одним в поле ниже динамического-контента, если значение NotEmpty.

String HOST = "localhost"; 
String PORT = "8080"; 
Document contentDocument = SAXReaderUtil.read(content); 

List<String> elementNames = Arrays.asList("main-picture"); 
for (String elementName : elementNames) { 
    Node mainNode = contentDocument.selectSingleNode("/root/dynamic-element[@name='"+elementName+"']/dynamic-content"); 
    Node urlNode = contentDocument.selectSingleNode("/root/dynamic-element[@name='"+elementName+"']/dynamic-element/dynamic-content"); 

    Integer urlNodeIndex = contentDocument.indexOf(urlNode); 
    String mainValue = mainNode.getText(); 
    if(!mainValue.equalsIgnoreCase("")) { 
     urlNode.setText("http://"+HOST+":"+PORT+mainValue); 

     System.out.println("urlValue is ---> "+urlNode.getText()); 
    } 
} 

Как вы можете видеть выше, я могу извлечь значение и установить его в urlNode. Но я полностью смущен, как установить этот urlNode обратно к содержанию. Я не смог найти какой-либо метод в SAXReaderUtil, помогая мне обновить content.

Есть ли способ, которым я могу UPDATE содержание?

ответ

1

Ответ был прост. я просто должен был сделать

content = contentDocument.asXML() 

установить обратно обновленный документ обратно в качестве содержимого.

 Смежные вопросы

  • Нет связанных вопросов^_^