yahoojapan / SwiftyXMLParser

Simple XML Parser implemented in Swift
MIT License
578 stars 89 forks source link

5.4.0 CDATA change breaks my parsing #65

Closed BirdArch closed 2 years ago

BirdArch commented 2 years ago

Hi, see this extract from my XML file:

            <Data name="DATE">
                <value><![CDATA[2018-07-08]]></value>
            </Data>

Up to v5.3.0 I could parse the date like this:

                    if let dateString = data.value.text {
                        ... // dateString == "2018-07-08"
                    }

But in 5.4.0 data.value.text is nil. Should I change the parsing code when using 5.4.0?

kazuhiro4949 commented 2 years ago

5.4.0 has new property for CDATA. You need to call it as followed.

        let str = """
            <Data name="DATE">
                <value><![CDATA[2018-07-08]]></value>
            </Data>
        """

        // parse xml document
        let xml = try! XML.parse(str)

        if let cdata = xml.Data.value.element?.CDATA, let cdataStr = String(data: cdata, encoding: .utf8) {
            print(cdataStr) // -> "2018-07-08"
        }
kazuhiro4949 commented 2 years ago

I'm sorry for not documenting. I added the usage.

https://github.com/yahoojapan/SwiftyXMLParser/commit/41900bb1882e704a25d4946f2dbad71b4bb02b8f

BirdArch commented 2 years ago

Thanks for your quick reply, parsing works again. :)