我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
我目前正在处理一些XML.
我有节点,如下所示:
<node>This is a string</node>
Run Code Online (Sandbox Code Playgroud)
我传递给节点的一些字符串将包含&,#,$等字符.
<node>This is a string & so is this</node>
Run Code Online (Sandbox Code Playgroud)
这是因为&
我无法将这些字符串包装在CDATA中,因为它们需要保持原样.我试过在线查找一些字符列表,这些字符无法放入XML节点而不是CDATA.
任何人都可以指向一个方向或向我提供非法字符列表吗?
我从以下代码块中得到以下异常.
解析EntityName时发生错误.第1行,位置844.
我试图将从表中检索到的数据集解析为数据集.
public DataSet BindMasterData(string xml)
{
DataSet ds = null;
try
{
ds = new DataSet();
TextReader txtReader = new StringReader(xml);
XmlReader reader = new XmlTextReader(txtReader);
ds.ReadXml(reader);
}
catch (Exception ex)
{
return new DataSet();
}
return ds;
}
Run Code Online (Sandbox Code Playgroud)
我已经找出了异常的原因,但我无法解决它.在这种特殊情况下,字符串(从DB检索)包含一个特殊字符(&).这导致例外.我怎么解决它.对此的任何帮助都会很棒.
谢谢你,塞巴斯蒂安
我有一个带有xml数据的字符串,我从Web服务中提取.数据很难看,并且在xml的Name标签中有一些无效的字符.例如,我可能会看到类似的东西:
<Author>Scott the Coder</Author><Address#>My address</Address#>
Run Code Online (Sandbox Code Playgroud)
地址名称字段中的#无效.我正在寻找一个正则表达式,它将从名称标签中删除所有无效字符但是将所有字符保留在xml的Value部分中.换句话说,我想使用RegEx仅从开头名称标签和结束名称标签中删除字符.其他一切都应该保持相同.
我还没有所有无效的字符,但这会让我开始:#{}&()
有可能做我想做的事吗?
我正在尝试解析从此链接返回的xml文档,但我得到类型的异常,ComException并带有以下消息:
Error HRESULT E_FAIL has been returned from a call to a COM component.
这是代码:
try
{
//...
string EPGXML = await DownloadAsync(url);
var xmldoc = new XmlDocument();
xmldoc.LoadXml(EPGXML); //this line throws the exception
//...rest of the code
}
catch (Exception)
{
//I get here...
}
Run Code Online (Sandbox Code Playgroud)
能帮到我,为什么我收到这条消息,我该如何解决这个问题?谢谢.
编辑:
我正在使用这个函数读取XML的源代码(也许我在这里错了,我应该做一些事情来获取UTF-8中的字符串,因为我没有在调试模式下看到字符串中的德语字符(watch窗口):
private async static Task<string> DownloadPageAsync(string url)
{
try
{
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
handler.AllowAutoRedirect = true;
handler.UseCookies = true;
HttpClient client = new …Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
private XmlDocument CreateMessage(string dirtyInput)
{
XmlDocument xd = new XmlDocument();
string str = @"<Message><Request>%REQ%</Request><Message>";
str = str.Replace("%REQ%", dirtyInput);
xd.LoadXml(str);
return xd;
}
Run Code Online (Sandbox Code Playgroud)
我应该采取哪些步骤来清理/验证这个 dirtyInput 字符串(它可能来自不受信任的来源)?
编辑:
为了提供更多上下文,此 XML“消息”随后(由我)发送到第三方 Web 服务。我最关心的是减轻有人可能向我传递一个字符串的风险,该字符串可能会利用我的 XML 解析器中的漏洞,甚至可能是目标 [第三方] 端(我向其发送此消息)的解析器中的漏洞。很明显,我可以专注于特殊的 XML 字符,例如 < > & 等 - 我是否还需要担心这些字符的转义/编码形式?可能的欺骗链接中提到的 SecurityElement.Escape 方法是否足以满足此目的?