如何根据参数分割html数据

时间:2015-02-13 11:22:00

标签: java android xml-parsing

我扫描了Aadhar卡二维码,扫描数据如下:

<PrintLetterBarcodeData 
    uid="741647613082" name="Pasikanti Enosh Kumar" gender="M"
    yob="1992" co="S/O Srinivas" house="SPLD-986" street="MALLARAM"
    loc="P V COLONY" vtc="Manuguru" po="P.V.Township" dist="Khammam"
    state="Andhra Pradesh" pc="507125">

我想分割数据,并希望得到每个属性,如name,id,dob等。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您需要使用的是javax.xml.parsers.DocumentBuilderFactoryorg.w3c.dom个包。

String sStringToParse;

// put your XML value into the sStringToParse variable
sStringToParse = new String("<PrintLetterBarcodeData uid='741647613082' name='Pasikanti Enosh Kumar' gender='M' yob='1992' co='S/O Srinivas' house='SPLD-986' street='MALLARAM' loc='P V COLONY' vtc='Manuguru' po='P.V.Township' dist='Khammam' state='Andhra Pradesh' pc='507125'/>");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new ByteArrayInputStream(sStringToParse.getBytes("utf-8")));
NodeList nlRecords = doc.getElementsByTagName("PrintLetterBarcodeData");

int num = nlRecords.getLength();

for (int i = 0; i < num; i++) {
    Element node = (Element) nlRecords.item(i);

    System.out.println("List attributes for node: " + node.getNodeName());

    // get a map containing the attributes of this node
    NamedNodeMap attributes = node.getAttributes();

    // get the number of nodes in this map
    int numAttrs = attributes.getLength();

    for (int j = 0; j < numAttrs; j++) {
        Attr attr = (Attr) attributes.item(j);

        String attrName = attr.getNodeName();
        String attrValue = attr.getNodeValue();

        // Do your stuff here
        System.out.println("Found attribute: " + attrName + " with value: " + attrValue);

    }

}

详细了解此article

中发生的事情