我正在使用那个例子,但是发生了一个错误 Get line number from xml node - java
效果很好,但在以下情况下失败:
<activity
android:name=".Main2Activity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar" />
因此,如果一个节点写在几行上,它将返回最后一行。对于提供的示例,它将返回4,但不是1.是否有人有任何想法来修复它?感谢
答案 0 :(得分:0)
在获取行号之前,请使用以下代码段转换您的xml:
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.setOutputProperty(OutputKeys.METHOD, "xml");
tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
StreamSource source = new StreamSource(new File("sourcefile.xml"));
StreamResult result = new StreamResult(new File("formattedfile.xml"));
tf.transform(source, result);
此代码段将格式化xml,使wach节点出现在新行上。
最后提供formattedfile.xml
作为获取行号逻辑的输入。
另外要小心,你的xml中没有一些节点,你需要这些节点作为新行,因为这将违反这个逻辑。