使用java解析每个元素具有多个同名子元素的XML
此响应的格式与我使用的有点不同。子节点都是单个元素的一部分。所有子项都具有相同的名称,并且标记采用通用格式。我需要每个节点组成一个记录。传统的程序逻辑不考虑多个同名子级。我考虑过创建一个额外的元素,该元素由命名的子节点组成,然后提取每个节点的值。这是正确的方法,还是有其他处理此类响应的方法?最后,此响应的格式是否正确?这种结构似乎不适合解析使用java解析每个元素具有多个同名子元素的XML,java,xml,parsing,response,Java,Xml,Parsing,Response,此响应的格式与我使用的有点不同。子节点都是单个元素的一部分。所有子项都具有相同的名称,并且标记采用通用格式。我需要每个节点组成一个记录。传统的程序逻辑不考虑多个同名子级。我考虑过创建一个额外的元素,该元素由命名的子节点组成,然后提取每个节点的值。这是正确的方法,还是有其他处理此类响应的方法?最后,此响应的格式是否正确?这种结构似乎不适合解析 <Properties xmlns="urn:Microsoft.Search.Response.Document.Document">
<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>
用户配置文件\u GUID
一串
XXXXX 97D-6XX7-XXX9-XX0A-XXXXX F0D5
帐户名
一串
亚太地区\约翰尼。好
用户名
一串
约翰尼,很好
首选名称
一串
很好,约翰尼
名字
一串
约翰尼
姓氏
一串
好
将元素名作为值隐藏在
元素中确实很奇怪,因为这违反了XML的理念。但它基本上是一份格式良好的文件
我会按照您的建议做:根据您是需要另一个XML还是只需要对象中的数据,我会创建一个具有适当元素/属性名称的XML元素或java对象,并从这些属性元素中提取值。同名子项非常常见,不应妨碍解析。使用simple-xml.jar库和
Use simple-xml.jar library and
Create
class Properties{
List<Property> Property;
}
Class Property{
String Name,Value,Type;
}
创造
类属性{
财产清单;
}
类属性{
字符串名称、值、类型;
}
考虑使用JAXB来解组XML文档。有趣的是,我从未使用过simple-XML.jar。从您的代码片段中看起来非常直接。我会调查的。谢谢。这或多或少是我想的。这个simple-xml.jar听起来是一个更好的解决方案。你每天都会学到新东西。