所以我有以下簡單的XML文件內容的XML文件:.Net,XML和Regex - 如何匹配特定的收集項目?
<CollectionItems>
<CollectionItem>
<Element1>Value1</Element1>
<Element2>
<SubElement1>SubValue1</SubElement1>
<SubElement2>SubValue2</SubElement2>
<SubElement3>SubValue3</SubElement3>
</Element2>
<Element3>Value3</Element3>
</CollectionItem>
<CollectionItem>
<Element1>Value1</Element1>
<Element2>
<SubElement1>SubValue1</SubElement1>
<SubElement2 />
<SubElement3>SubValue3</SubElement3>
</Element2>
<Element3>Value3</Element3>
</CollectionItem>
<CollectionItem>
<Element1>Value1</Element1>
<Element2>
<SubElement1>SubValue1</SubElement1>
<SubElement2>SubValue2</SubElement2>
<SubElement3>SubValue3</SubElement3>
</Element2>
<Element3>Value3</Element3>
</CollectionItem>
</CollectionItems>
我試圖寫在.net正則表達式相匹配任何CollectionItem其中SubElement2是空的(在這個例子中,中間CollectionItem)。
我有以下的正則表達式到目前爲止(啓用SINGLELINE模式):
<CollectionItem>.+?<SubElement2 />.+?</CollectionItem>
的問題是,它是匹配所述第一CollectionItem通過第二CollectionItem的接近開口。我明白爲什麼會這樣做,但我不知道如何修改正則表達式以使其僅匹配中心CollectionItem。
編輯:至於爲什麼正則表達式,而不是別的東西:
- 我試圖修改該文件中的簡單文本編輯器。
- 在我無法弄清楚如何在正則表達式中完成它之後,我想知道是否可以爲了學習而完成(以及如何)。
謝謝!
你的xml在這個例子中是不好的。 SubElement2和SubElement3都有SubElement1結束標記 – Greg 2010-05-12 19:21:09
糟糕,你是對的。現在已經修復了。 – 2010-05-12 19:26:38