在PHP中,你可以簡單地做剝離CDATA標籤XML如下:剝離CData的標籤XML的Perl
simplexml_load_string($string, 'SimpleXMLElement', LIBXML_NOCDATA);
我不知道我怎麼會使用XML::Bare
或任何其他模塊做到這一點在Perl?
我的客戶往往會發出這樣一個xml:
<msg t='sys'><body action='login' r='0'><login z='w1'><nick><![CDATA[Test]]></nick><pword><![CDATA[4c24a5558542bf35cca54d8749c78de6]]></pword></login></body></msg>
使用XML ::裸我會分析它是這樣的:
$string = "<msg t='sys'><body action='login' r='0'><login z='w1'><nick><![CDATA[Test]]></nick><pword><![CDATA[4c24a5558542bf35cca54d8749c78de6]]></pword></login></body></msg>";
$strXML = XML::Bare->new('text' => $string)->parse;
say $strXML->{msg}->{body}->{login}->{nick}->{value};
和它的作品,但我想脫光關閉cdata標籤以防止在我的服務器上進行sql注入。有誰知道我該如何去做這件事?我在網上搜索了一個解決方案,但一直沒能找到答案。
什麼是從示例XML您預期的輸出? – simbabque
[XML ::裸表示它會剝離](https://metacpan.org/pod/XML::Bare#Parsing-Limitations-Features)不需要的CDATA ... – simbabque
我基本上想要一個沒有cdata解析的xml – Lucas