<DistinctParty FixedRef="10569">
<Comment />
<Profile ID="10569" PartySubTypeID="4">
<Identity ID="952" FixedRef="10569" Primary="true" False="false">
<Alias FixedRef="10569" AliasTypeID="1403" Primary="true" LowQuality="false">
<DocumentedName ID="952" FixedRef="10569" DocNameStatusID="1">
<DocumentedNamePart>
<NamePartValue NamePartGroupID="36916" ScriptID="215" ScriptStatusID="1" Acronym="false">MAKHLUF</NamePartValue>
</DocumentedNamePart>
<DocumentedNamePart>
<NamePartValue NamePartGroupID="36917" ScriptID="215" ScriptStatusID="1" Acronym="false">Hafiz</NamePartValue>
</DocumentedNamePart>
</DocumentedName>
</Alias>
<Alias FixedRef="10569" AliasTypeID="1400" Primary="false" LowQuality="false">
<DocumentedName ID="12197" FixedRef="10569" DocNameStatusID="2">
<DocumentedNamePart>
<NamePartValue NamePartGroupID="18042" ScriptID="215" ScriptStatusID="1" Acronym="false">MAKHLOUF</NamePartValue>
</DocumentedNamePart>
<DocumentedNamePart>
<NamePartValue NamePartGroupID="18043" ScriptID="215" ScriptStatusID="1" Acronym="false">Hafez</NamePartValue>
</DocumentedNamePart>
</DocumentedName>
</Alias>
<NamePartGroups>
<MasterNamePartGroup>
<NamePartGroup ID="36916" NamePartTypeID="1520" />
</MasterNamePartGroup>
<MasterNamePartGroup>
<NamePartGroup ID="36917" NamePartTypeID="1521" />
</MasterNamePartGroup>
<MasterNamePartGroup>
<NamePartGroup ID="18042" NamePartTypeID="1520" />
</MasterNamePartGroup>
<MasterNamePartGroup>
<NamePartGroup ID="18043" NamePartTypeID="1521" />
</MasterNamePartGroup>
</NamePartGroups>
</Identity>
<Feature ID="5887" FeatureTypeID="8">
<FeatureVersion ID="570" ReliabilityID="1">
<Comment />
<DatePeriod CalendarTypeID="1" YearFixed="false" MonthFixed="false" DayFixed="false">
<Start Approximate="true" YearFixed="false" MonthFixed="false" DayFixed="false">
<From>
<Year>1975</Year>
<Month>1</Month>
<Day>1</Day>
</From>
<To>
<Year>1975</Year>
<Month>1</Month>
<Day>1</Day>
</To>
</Start>
<End Approximate="true" YearFixed="false" MonthFixed="false" DayFixed="false">
<From>
<Year>1975</Year>
<Month>12</Month>
<Day>31</Day>
</From>
<To>
<Year>1975</Year>
<Month>12</Month>
<Day>31</Day>
</To>
</End>
</DatePeriod>
<VersionDetail DetailTypeID="1430" />
</FeatureVersion>
<IdentityReference IdentityID="952" IdentityFeatureLinkTypeID="1" />
</Feature>
<Feature ID="5888" FeatureTypeID="9">
<FeatureVersion ID="571" ReliabilityID="1">
<Comment />
<VersionDetail DetailTypeID="1432">Damascus, Syria</VersionDetail>
</FeatureVersion>
<IdentityReference IdentityID="952" IdentityFeatureLinkTypeID="1" />
</Feature>
<Feature ID="164625" FeatureTypeID="25">
<FeatureVersion ID="214625" ReliabilityID="1">
<Comment />
<VersionLocation LocationID="14625" />
</FeatureVersion>
<IdentityReference IdentityID="952" IdentityFeatureLinkTypeID="1" />
</Feature>
<Feature ID="310569" FeatureTypeID="26">
<FeatureVersion ID="410569" ReliabilityID="1">
<Comment />
<VersionDetail DetailTypeID="1432">Colonel</VersionDetail>
</FeatureVersion>
<IdentityReference IdentityID="952" IdentityFeatureLinkTypeID="1" />
</Feature>
</Profile>
</DistinctParty>
这是一个XML,它的根是DistinctParty,现在我需要通过JAVA从中提取两个标签。
- 名称派对值
- 版本详情
现在我得到了根元素,可以使用这些方法提取NamePartyValue,但我还需要提取我什至无法在结果中找到的版本详细信息元素,您能否指导我朝着准确的方向前进。
public NodeList readXMLFileUpdated(String path) {
File fXmlFile = new File(path);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = null;
Document doc = null;
NodeList nList = null;
try {
dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
nList = doc.getElementsByTagName("DistinctParty");
} catch (Exception e) {
e.printStackTrace();
}
return nList;
}
public List<Company> getCompanyNamesXML(NodeList nodes){
List<Company> listOfCompanies = new ArrayList<>();
for(int i = 0; i<nodes.getLength(); i++)
listOfCompanies.add(new Company(nodes.item(i).getTextContent()));
return listOfCompanies;
}
上层方法中的此语句 nodes.item(i).getTextContent() 返回我 NamePartyValue 字段的值,当尝试使用此 nodes.item(i).getChildNodes() 获取此节点的子节点时,我在结果中看不到版本详细信息,知道我可能缺少什么吗?
就像你通过调用doc.getElementsByTagName()找到"DistincyParty"的NodeList一样,你可以通过做同样的事情找到VersionDetail或NamePartValue元素。