我正在使用c#。
我有以下的xml文件:
require 'google/apis/drive_v2'
auth = Signet::OAuth2::Client.new(
token_credential_uri: 'https://accounts.google.com/o/oauth2/token',
client_id: "XXX-XXX",
client_secret: "XXX",
refresh_token: self.refresh_token # Get this from the omniauth strategy.
)
auth.fetch_access_token!
x = Google::Apis::DriveV2
drive = x::DriveService.new
drive.authorization = auth
files = drive.list_files
我怎样才能“过滤”所有非法字符? (<,>,“等......)
我需要编写自己的代码,如下所示:
<MyXml>
<Element><x> y</p><Element>
<Element>&quot;my qoute&quot;<Element>
</MyXml>
或者我还有其他办法吗?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
应该做什么是修复生成此XML的内容,因为它错误地将“转义”XML作为文本插入到Element
元素中,而不是添加子节点。
如果你不能这样做,那么一种可能的解决方法是识别那些应该包含XML的元素,解析内容并将结果元素添加为子元素:
var doc = XDocument.Parse(xml);
foreach (var element in doc.Descendants("Element"))
{
var content = XElement.Parse("<root>" + element.Value + "</root>");
element.ReplaceNodes(content.Nodes());
}