2016-05-26 1 views
2

Я пишу инструмент синтаксического анализа для сравнения текстового содержимого двух XML-файлов bean в Java. Текстовый контент изменяется, и нам нужен способ запустить скрипт, чтобы текстовый контент был таким же. Я знаю, что у нас есть org.w3c.dom, у которого есть метод getElementsByTagName ("tag_name") и возвращает список узлов в документе XML. Мне интересно, знает ли кто-нибудь, как это сделать, используя имя класса? Я искал, но еще не смог решить эту проблему.Как обработать XML-документ по имени класса с помощью Java

<bean class="com.mycompany.myText" id="Q1.4"> 
    <property name="name"> 
     <value>Q1.4</value> 
    </property> 
    <property name="text"> 
     <value>This is text one</value> 
    </property> 
    <property name="retired"> 
      <value>true</value> 
    </property> 
</bean> 

<bean class="com.mycompany.myText" id="Q1.5"> 
    <property name="name"> 
     <value>Q1.5</value> 
    </property> 
    <property name="text"> 
     <value>This is text two</value> 
    </property> 
    <property name="retired"> 
      <value>true</value> 
    </property> 
</bean> 

я не могу использовать «боб» имя элемента, поскольку есть несколько другой фасоли ти, не соответствующая вещи мне нужно только те, с классом com.mycompany.myText и значением Я пытаюсь извлечь is property name = text - текстовое содержимое

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

ответ

4

Как вы говорите, вам нужно выбрать теги по их атрибутам.

Вы можете использовать XPath для достижения этого. Смотрите эти ресурсы:

Выражение было бы что-то вроде этого

/bean[@class='com.mycompany.myText']/property[@name='text']/value

Я надеюсь, что я мог бы помочь хотя бы немного немного.

+1

Спасибо! Я делал ограниченную работу с веб-материалами, и XML даже не думал использовать XPath-Duh! Это решит мою проблему. – Nixman55

+1

Хорошо, рад, что я мог бы помочь;) – TuringTux

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

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