У меня маленькая проблема. Я анализирую файл XML в строку и в строке должен искать фразу id="t2"
, ниже я использую subString
- indexOf
, но когда я использую двойные кавычки на "<text id=\"t2\" "
, программа выдает исключение, и когда я использовать простые кавычки "<text id=t2 "
- выбросить исключение, потому что фраза не существует
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin -1, end 16319, length 21524
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
at Parser.Test.main(Test.java:36)
Это мой код:
DocumentBuilderFactory domFact = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFact.newDocumentBuilder();
Document doc = builder.parse(args[0]);
DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
//System.out.println("XML IN String format is: \n" + writer.toString());
String test = writer.toString();
//String b = "<alt-trans id=\"t2\" ";
String a = writer.toString().substring(writer.toString().indexOf("<alt-trans id=\"t2\" "),
writer.toString().indexOf("</alt-trans>"));
System.out.println(a);
В конечном результате пользователь должен будет ввести идентификатор, как это
String variable = scan.next();
e.g. my variable = t4
В программе: "<alt-trans id=\"variable\" "
Я не знаю, как я могу это сделать, кто-нибудь помочь