[英]Parse XML character for specific attribute value using Stax Parser
我希望得到的XML文件對應於屬性名稱=“Fire”的字符是Tree:
<Troupe name="Ring">Hat</Troupe>
<Troupe name="Fire">Tree</Troupe>
<Troupe name="bank">Next</Troupe>
使用StAX:
XmlStreamConstant.Start_Element:
//Parse Troupe found matching attribute name whose value is Fire
XmlStreamConstant.Characters:
//Fetch the character Tree corresponding to attribute name Fire.
StAX是否提供了一種簡單的方法來獲取屬性值與特定值匹配的字符?
歡迎來到SO。 您可以通過以下方式獲取價值:
public static void main(String[] args) {
boolean troupe = false;
try {
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader eventReader =
factory.createXMLEventReader(new ileReader("file.xml"));
while(eventReader.hasNext()){
XMLEvent event = eventReader.nextEvent();
if(event.getEventType() == XMLStreamConstants.START_ELEMENT){
StartElement startElement = event.asStartElement();
if (startElement.getName().getLocalPart().equalsIgnoreCase("Troupe")) {
Iterator<Attribute> attributes = startElement.getAttributes();
String name = attributes.next().getValue();
if(name.equals("Fire")) {
troupe = true;
}
}
}
else if(event.getEventType() == XMLStreamConstants.CHARACTERS) {
Characters characters = event.asCharacters();
if(troupe){
System.out.println("Value: " + characters.getData());
troupe = false;
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.