2013-08-04 25 views
5

Mam XmlNode która reprezentuje następujące xml na przykład:Usuwanie CDATA tag od XmlNode

XmlNode xml.innerText = 
<book> 
<name><![CDATA[Harry Potter]]</name> 
<author><![CDATA[J.K. Rolling]]</author> 
</book> 

Chcę zmienić ten węzeł, tak że będzie ona zawierać następujące elementy:

XmlNode xml.innerText = 
<book> 
<name>Harry Potter</name> 
<author>J.K. Rolling</author> 
</book> 

Any pomysły?
Dzięki!

+0

jest ich jakieś szczególne potrzeby usuwania tagów lub po prostu chcesz odczytać wartości ? A przy okazji zawsze publikuj poprawną próbkę. Brakuje zamykających tagów cdata w przykładowym pliku xml. – Ehsan

+0

Jest, przekazany do klienta – Niv

+0

, który tworzy plik xml? – Ehsan

Odpowiedz

8

, czy to dokładnie tak, jak go umieścić, to jest proste:

xml.innerText = xml.innerText.Replace("![CDATA[","").Replace("]]",""); 
xmlDoc.Save();// xmlDoc is your xml document 
+0

Niestety, nie jest to dokładnie to, jak to ujęłam. Jest bardziej zagnieżdżony, a ten kod (który próbowałem) zdaje się usuwać również inne główne części. – Niv

+0

@ Czy możesz udostępnić więcej kodu lub podać nam więcej informacji? Jest to manipulacja ciągami, które chcesz, ale nie wiem, jakiej dokładnie manipulacji potrzebujesz. Mogę pomóc, jeśli masz więcej informacji –

+2

To działa, po prostu z drobną modyfikacją: zamiast innerText, potrzebowałem użyć innerXML. Tnx! – Niv

1

Proponuję przeczytać cały xml i przepisać go ponownie. dobrze można odczytać wartości bez CDATA jak ten

foreach (var child in doc.Root.Elements()) 
    { 
     string name = child.Name; 
     string value = child.Value 
    } 
+1

Możliwe, że XML jest dostarczany przez stronę trzecią i musi zostać oczyszczony. –

+0

Jednym z powodów usunięcia CDATA jest to, że libxml nie obsługuje CDATA. Wymagałoby to od niego pobrania danych otrzymanych od strony trzeciej i uczynienia z niego formatu, który będzie działał lub usuwał go. Zobacz [gnome and CDATA] (https://mail.gnome.org/archives/xml/2008-September/msg00092.html). Również [Gnome and CDATA również] (http://www.xmlsoft.org/search.php?query=cdata&submit=Search). – Michele