将XMLString转POJO导致没有属性?
Converting XML String to POJO leads to no attributes?
我的函数接收 XML 但它被格式化为字符串,我试图将此字符串转换为 XML 并将 XML 转换为 POJO。该函数只会接收一个对象。
这是我得到的:
String xmlString = "<object><attributeOne>test</attributeOne><attributeTwo>test2</attributeTwo></object>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObject = builder.parse(new InputSource(new StringReader(xmlString)));
// print root element name
System.out.println("Root element: " + xmlObject.getDocumentElement().getNodeName());
int numRootElements = xmlObject.getDocumentElement().getAttributes().getLength();
System.out.println("Number of attributes: " + String.valueOf(numRootElements));
// log root element attributes:
System.out.println("Root element attributes: ");
for (int i = 0; i < xmlObject.getDocumentElement().getAttributes().getLength(); i++) {
System.out.println(xmlObject.getDocumentElement().getAttributes().item(i).getNodeName()
+ ": "
+ xmlObject.getDocumentElement().getAttributes().item(i).getNodeValue());
}
// Output:
// Root element: object
// Number of attributes: 0
// Root element attributes:
我想我没有正确读取对象的值,但我很困惑为什么会出现这种情况,而 here 给出的答案与我自己的答案没有什么不同。直到现在才与 XML 合作过
我能够通过使用 .getNodeValue()
而不是 .getAttributes()
来纠正此行为
我的函数接收 XML 但它被格式化为字符串,我试图将此字符串转换为 XML 并将 XML 转换为 POJO。该函数只会接收一个对象。
这是我得到的:
String xmlString = "<object><attributeOne>test</attributeOne><attributeTwo>test2</attributeTwo></object>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObject = builder.parse(new InputSource(new StringReader(xmlString)));
// print root element name
System.out.println("Root element: " + xmlObject.getDocumentElement().getNodeName());
int numRootElements = xmlObject.getDocumentElement().getAttributes().getLength();
System.out.println("Number of attributes: " + String.valueOf(numRootElements));
// log root element attributes:
System.out.println("Root element attributes: ");
for (int i = 0; i < xmlObject.getDocumentElement().getAttributes().getLength(); i++) {
System.out.println(xmlObject.getDocumentElement().getAttributes().item(i).getNodeName()
+ ": "
+ xmlObject.getDocumentElement().getAttributes().item(i).getNodeValue());
}
// Output:
// Root element: object
// Number of attributes: 0
// Root element attributes:
我想我没有正确读取对象的值,但我很困惑为什么会出现这种情况,而 here 给出的答案与我自己的答案没有什么不同。直到现在才与 XML 合作过
我能够通过使用 .getNodeValue()
而不是 .getAttributes()