使用java解析每个元素具有多个同名子元素的XML

时间:2014-08-28 13:50:21

标签: java xml parsing response

此响应的格式与我使用的格式略有不同。子节点都是单个元素的一部分。所有孩子都有相同的名称,标签是通用格式。我需要每个节点都包含一个记录。传统的程序逻辑不考虑多个同名儿童。我考虑过创建一个由命名的子节点组成的附加元素,然后提取每个节点的值。这是正确的方法,还是应该处理这种类型的响应?最后,这个响应格式是否正确?看起来这个结构不适合解析。

<Properties xmlns="urn:Microsoft.Search.Response.Document.Document">
     <Property>
         <Name>USERPROFILE_GUID</Name>
         <Type>String</Type>
         <Value>XXXXX97D-6XX7-XXX9-XX0A-XXXXXF0D5</Value>
     </Property>
     <Property>
         <Name>ACCOUNTNAME</Name>
         <Type>String</Type>
         <Value>APAC\johnny.good</Value>
     </Property>
     <Property>
         <Name>USERNAME</Name>
         <Type>String</Type>
         <Value>johnny.good</Value>
     </Property>
     <Property>
         <Name>PREFERREDNAME</Name>
         <Type>String</Type>
         <Value>Good, Johnny</Value>
     </Property>
     <Property>
         <Name>FIRSTNAME</Name>
         <Type>String</Type>
         <Value>Johnny</Value>
     </Property>
     <Property>
         <Name>LASTNAME</Name>
         <Type>String</Type>
         <Value>Good</Value>
     </Property>
 </Properties>

2 个答案:

答案 0 :(得分:0)

将元素名称隐藏为<name>元素中的值确实很奇怪,因为这违反了XML的思想。但基本上它是一个结构良好的文件。

我会按照你的建议做同样的事情:根据你是否需要另一个XML或只是对象中的数据,我会创建一个带有相应元素/属性名称的xml元素或java对象,并从这些属性中提取值-elements。同名儿童很常见,绝不应该妨碍解析。

答案 1 :(得分:0)

  Use simple-xml.jar library and 
  Create 
  class Properties{
  List<Property> Property;
   }
  Class Property{
  String Name,Value,Type;

   }