2010-10-01 9 views
6

से फ़ंक्शन कॉल सूची निकालने के लिए मैंने DOxygen मंचों पर question पोस्ट किया और इसे बेहतर प्रतिक्रिया के लिए यहां पोस्ट कर रहा हूं।DOxygen XML आउटपुट

मेरे पास लगभग 2,900 कार्यों का मामूली आकार का सी प्रोजेक्ट है। मैं DOxygen 1.5.9 का उपयोग कर रहा हूं और यह सफलतापूर्वक कार्यों के लिए कॉल ग्राफ़ उत्पन्न कर रहा है। आगे विश्लेषण के लिए इसे निकालने का कोई तरीका है? एक साधारण जोड़ा सूची पर्याप्त होगी, उदा।

Caller,Callee 
FunctionX, FunctionY 
... 

मैं XSLT के साथ सहज हूँ, लेकिन मैं कहना होगा कि Doxygen XML आउटपुट जटिल है। क्या किसी ने पहले ऐसा किया है और एक्सएमएल फाइलों को पार्स करने के तरीके पर कुछ मार्गदर्शन प्रदान कर सकता है?

अग्रिम धन्यवाद!

+0

क्या आप विशेष रूप से एक्सएसएलटी का उपयोग करना चाहते हैं, या आप सी या सी # जैसी किसी अन्य भाषा के लिए कोडिंग कर रहे हैं? साथ ही, यदि आप अधिक सटीक सुझाव प्राप्त करना चाहते हैं तो आपको यहां डॉक्सिजन एक्सएमएल आउटपुट का नमूना पोस्ट करना चाहिए। – Reinderien

+0

एक्सएसएलटी का उपयोग करना आवश्यक नहीं है; मैं कुछ और इस्तेमाल कर सकता था। प्रश्न वास्तव में XML को पार्स करने के बारे में नहीं है - मुझे पता है कि यह कैसे करें। यह अधिक बुनियादी है - डॉक्सिजन अपनी (कई) एक्सएमएल आउटपुट फाइलों को व्यवस्थित करता है और मैं उनसे कॉलर - कैली रिलेशनशिप कैसे स्थापित कर सकता हूं। –

उत्तर

4

मैं क्या काल्पनिक उदाहरण है कि मैं बनाया में देखते हैं के आधार पर,

^_(.+)\d+(c|cpp|h|hpp)\.xml$ के लिए इसी तरह एक नाम के साथ
  • पार्स फ़ाइलें, अगर मेरे regex-foo सही है।
  • सभी <memberdef kind="function"> खोजें। इसमें एक अद्वितीय id विशेषता है। मेरा मानना ​​है कि इसके लिए XPath //memberdef[@kind='function'] है।
  • उस तत्व के भीतर, सभी <references> खोजें।
  • उन टैग्स में से प्रत्येक के लिए, refid विशेषता विशिष्ट रूप से संबंधित <memberdef> के id विशेषता को संदर्भित करती है।
  • प्रत्येक <references> के भीतर टेक्स्ट नोड संबंधित <memberdef> के <name> से मेल खाता है जिसे कहा जा रहा है।

यह कॉल ग्राफ़ व्यक्त करने के लिए एक अच्छा, सीधा तरीका लगता है। वांछित परिणाम प्राप्त करने के लिए आपको XSLT या किसी अन्य सेन एक्सएमएल-पार्सिंग सूट का उपयोग करने में कोई परेशानी नहीं होनी चाहिए।

संबंधित मुद्दे