下面列出了怎么用com.intellij.psi.XmlRecursiveElementVisitor的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void actionPerformed(AnActionEvent e) {
VirtualFile vFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
if (vFile == null) {
return;
}
String fileName = vFile.getName();
if (!fileName.endsWith(".xml")) {
return;
}
PsiFile pFile = e.getData(PlatformDataKeys.PSI_FILE);
if (pFile == null) {
return;
}
// for (PsiElement psiElement : pFile.getChildren()) {
// System.out.println(psiElement.getText() + " is: " + (psiElement instanceof XmlTag));
// if (psiElement instanceof XmlTag) {
// System.out.println(FindUsagesCompat.findUsage((XmlTag) psiElement));
// }
// }
pFile.accept(new XmlRecursiveElementVisitor() {
@Override
public void visitElement(PsiElement element) {
super.visitElement(element);
if (element instanceof XmlTag) {
System.out.println(element.getText());
if (ResourceUsageCountUtils.isTargetTagToCount(element)) {
System.out.println(FindUsagesCompat.findUsage((XmlTag) element));
}
}
}
});
}