[英]Parsing XML with attributes
I want to parse this XML with Attribute and value. 我想用属性和值解析此XML。 Now I am able to parse values but I am not able parse Attributes. 现在,我可以解析值,但是无法解析属性。
My XML: 我的XML:
<Book>
<vendor>
<vendorPartyReference href="VENDOR"/>
<vendorDefinedValue fieldName="Bookuser">dav</vendorDefinedValue>
<vendorDefinedValue fieldName="ComUser">dav</vendorDefinedValue>
<vendorDefinedValue fieldName="Rate">1.02505</vendorDefinedValue>
<vendorDefinedValue fieldName="Points">0.00000</vendorDefinedValue>
<vendorDefinedValue fieldName="Design">DSF</vendorDefinedValue>
<vendorDefinedValue fieldName="Role">APPROVER</vendorDefinedValue>
<vendorDefinedValue fieldName="cover">DXBook12</vendorDefinedValue>
<vendorDefinedValue fieldName="Organization">Mannar</vendorDefinedValue>
</vendor>
</Book>
I want to parse like fieldname as key and value as dav(values). 我想解析像fieldname作为键和值作为dav(values)。
NodeList nList = document.getElementsByTagName("Book");
for(int s=0; s<nList.getLength() ; s++)
{
NodeList tsfpmlVendor = document.getElementsByTagName("vendor");
for(int i=0; i<tsfpmlVendor.getLength(); i++)
{
Node tsfpmlVendorNode = tsfpmlVendor.item(i);
Element tsfpmlVendorElement = (Element)tsfpmlVendorNode;
for(int j=0; j<tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").getLength(); j++)
{
listVendorField.add(tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j).getTextContent());
System.out.println("kkk: "+ tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j).getAttributes().getLength());
System.out.println("kkk: "+ tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j).getNodeType());
}
}
}
You question is not very clear. 您的问题不是很清楚。 See http://www.w3.org/2003/01/dom2-javadoc/org/w3c/dom/Element.html for the Javadoc for W3C DOM which will give Attributes and their values.. I think you need 有关W3C DOM的Javadoc,请参阅http://www.w3.org/2003/01/dom2-javadoc/org/w3c/dom/Element.html ,该文档将提供属性及其值。
java.lang.String getAttribute(java.lang.String name)
// Retrieves an attribute value by name.
or 要么
Attr getAttributeNode(java.lang.String name)
//Retrieves an attribute node by name.
This is your code modified so it prints out the attribute like "filedName" and it's attribute-value like "Bookuser": 这是对您的代码进行的修改,因此它可以打印出诸如“ filedName”之类的属性,以及诸如“ Bookuser”之类的属性值:
NodeList nList = document.getElementsByTagName("Book");
for (int s = 0; s < nList.getLength(); s++) {
NodeList tsfpmlVendor = document.getElementsByTagName("vendor");
for (int i = 0; i < tsfpmlVendor.getLength(); i++) {
Node tsfpmlVendorNode = tsfpmlVendor.item(i);
Element tsfpmlVendorElement = (Element) tsfpmlVendorNode;
for (int j = 0; j < tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").getLength(); j++) {
Node n = tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j);
listVendorField.add(n.getTextContent());
NamedNodeMap nnm = n.getAttributes();
for(int k=0; k<nnm.getLength(); k++) {
Node nattr = nnm.item(k);
System.out.println("Attribute "+nattr.getNodeName() + " => " + nattr.getNodeValue());
}
System.out.println("Value "+n.getTextContent());
System.out.println("kkk: " + tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j).getAttributes().getLength());
System.out.println("kkk: " + tsfpmlVendorElement.getElementsByTagName("vendorDefinedValue").item(j).getNodeType());
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.