2017-08-02 23 views
1

嗨,我有一個真正的麻煩,讓它的嵌套xml標籤。我需要你的幫助,以找到開始標籤和結束標籤從一個XML文件,而它的嵌套?使用Perl腳本(正則表達式或模塊......任何東西都可以)但只有perl提取嵌套的xml標籤(不是它的屬性或值,甚至內容)。

**注意:我需要給標記編號,嚴格地說我不需要標記內的內容。

試圖複製epsilon,因爲它顯示我正確的結束標記,當我選擇開始標記。但我不能。**

粘貼下面個樣本是一個小片段,但我需要代碼,任意數量的嵌套

sample Tag: 
<mrow><mrow><mrow>....<mi>K<\mi>...<\mrow><mi><\mi><\mrow><\mrow> 

expected output: 

<mrow1><\mrow1> 
<mrow2><\mrow2> 
<mrow3><\mrow3> 
+2

[XMLLibXML](http://search.cpan.org/dist/XML-LibXML/LibXML.pod)或[XML :: Twig](http://search.cpan.org/dist/XML-Twig /Twig.pm)。快樂的編碼。如果遇到麻煩問,關於_your code_。 – zdim

+2

在這裏,人們通常會發布他們的代碼,描述他們的具體問題。這不是簡單地要求某人爲您編寫代碼的好地方。 – zdim

+0

另外 - 沒有一些示例(有效)的XML,甚至很難做到這一點。但是對於XML :: Twig,您可以重命名標籤。重新排列樹結構(例如展開嵌套)雖然有些困難,但我們需要更清晰的解釋。示例輸入和輸出是一個很好的開始。 XML :: Twig可以讓你剪切和粘貼元素,這聽起來像是你之後的事情。 – Sobrique

回答

0

我會建議使用Perl的XML/XPath的庫

XML不是一種常規的語言,所以正則表達式在一般情況下是不夠的。試圖編寫新的代碼從XML文檔中提取標籤最終會歸結爲從頭開始重寫一個基本的(即不一定完全符合標準的)XML解析器。

XML使用如此普遍的原因之一是它是W3C標準,所以現在有很多現有的符合解析器,這就省去了編寫新解析器的時間和精力。有些解析器會將文檔暴露給宿主語言(例如DOM),有些解析器會隨附XPath,這使得它更容易。

我希望這有助於!