如何在元素中获取元素,以及具有多个具有相同名称的元素的Xml
。我需要会员身份状态元素,而不是会员卡状态。 getElementsByTagName将获得Membership Status,但如果Membership Status不可用,它将转到MembershipCard Status。我不要。
我正在使用getTextContent()从元素获取文本。
原始文件夹Android Studio中的xml文件
<Membership>
<Program>Fun</Program>
<Status>CANCELLED</Status>
<MembershipCard>
<Country>Australia</Country>
<Status>VALID</Status>
<Version>10</Version>
</MembershipCard>
</Membership>
代码-
String FirstName =“ FirstName”;
String Surname =“ Surname”;
String Status =“ Status”;
String Membership =“ Membership”;
//这里缺少一些代码....
//正在读取原始文件夹中的文件...
String s = OfflineServiceClient.readRawTextFile(super.AppContext,resourceId);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(s));
Document doc = docBuilder.parse(is);
// ResponseBody是我需要的主要元素之一,所有元素都在ResponseBody元素内部
if (doc != null)
{
NodeList nList = doc.getElementsByTagName("ResponseBody");
if (nList.getLength() > 0)
{
for (int i = 0; i < nList.getLength(); i++)
{
Node node = nList.item(i);
// (node.getNodeType() == Node.ELEMENT_NODE)
Element eElement = (Element) node;
try
{
if (eElement.getElementsByTagName(FirstName).getLength() > 0 )
{
enrollmentStatus.setFirstName(eElement.getElementsByTagName(FirstName).item(0).getTextContent());
if (eElement.getElementsByTagName(Surname).getLength() > 0 )
enrollmentStatus.setLastName(eElement.getElementsByTagName(Surname).item(0).getTextContent());
等.........
预期结果是“仅来自会员资格状态”的文本值。如果“成员资格状态”为“不可用”,则返回null。