【发布时间】:2018-12-15 18:29:14
【问题描述】:
我有一个简单的 XML 文件:
`<?xml: version = "1.0" ?>
<Company>
<Employee category = "technical">
<FirstName>John</FirstName>
<LastName>Doe</LastName>
<ContactNo>123456789</ContactNo>
</Employee>
<Employee category = "non-technical">
<FirstName>Jane</FirstName>
<LastName>Doe</LastName>
<ContactNo>1234567898</ContactNo>
</Employee>
</Company>`
现在,我必须使用 StAX 解析 XML,但我无法获取属性。 我的代码是:
`public static void main(String[] args) throws XMLStreamException, FileNotFoundException {
XMLInputFactory xmlif = XMLInputFactory.newFactory();
Reader reader = new FileReader("Company.txt");
XMLStreamReader xmlsr = xmlif.createXMLStreamReader(reader);
while (xmlsr.hasNext()) {
switch (xmlsr.next()) {
case XMLStreamReader.START_ELEMENT:
System.out.println("START_ELEMENT");
System.out.println("Qname:" + xmlsr.getName());
break;
case XMLStreamReader.END_ELEMENT:
System.out.println("END_ELEMENT");
System.out.println("Qname:" + xmlsr.getName());
}
}
}`
当我开始阅读元素时,我必须使用一个简单的 IF 函数检查它是否具有属性。如果它有一个属性,我会使用:
for (int i = 0; i < xmlsr.getAttributeCount(); i++) {
String attributeName = xmlsr.getAttributeLocalName(i);
String attributeValue = xmlsr.getAttributeValue(i);
System.out.println("Attribute value for " + attributeName + " = " + attributeValue);
}
但是,我不知道 IF 函数的确切位置以及如何检查它。 请,有人可以插入 IF 函数的代码。 谢谢...
【问题讨论】:
标签: attributes stax