Java 使用属性解析XML
我想用属性和值解析这个XML。现在我可以解析值,但不能解析属性 我的XML:Java 使用属性解析XML,java,xml-parsing,Java,Xml Parsing,我想用属性和值解析这个XML。现在我可以解析值,但不能解析属性 我的XML: <Book> <vendor> <vendorPartyReference href="VENDOR"/> <vendorDefinedValue fieldName="Bookuser">dav</vendorDefinedValue> <vendorDefinedVal
<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>
达夫
达夫
1.02505
0
DSF
批准人
DXBook12
曼纳
我想将类似fieldname的内容解析为key,将value解析为dav(values)
NodeList nList=document.getElementsByTagName(“Book”);
对于(int s=0;s您的问题不是很清楚。请参阅Javadoc for W3C DOM,它将提供属性及其值。我认为您需要
java.lang.String getAttribute(java.lang.String name)
// Retrieves an attribute value by name.
或
这是您修改的代码,因此它打印出类似“filedName”的属性和类似“Bookuser”的属性值:
NodeList nList=document.getElementsByTagName(“Book”);
对于(int s=0;sjava.lang.String getAttribute(java.lang.String name)
// Retrieves an attribute value by name.
Attr getAttributeNode(java.lang.String name)
//Retrieves an attribute node by name.
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());
}
}
}