In this paper, we propose a new fault localization technique for testing software which requires structured input data. We adopt a symbolic grammar to represent structured data input, and use an automatic grammar-based test generator to produce a set of well-distributed test cases, each of which is equipped with a set of structural features. We show that structural features can be effectively used as test coverage criteria for test suite reduction. By learning structural features associated with failed test cases, we present an automatic fault localization approach to find out software defects which result in the testing failures. Preliminary experiments justify that our fault localization approach is able to accurately locate fault-inducing patterns.