相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<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)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

XML中的字符无效

我目前正在处理一些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.

任何人都可以指向一个方向或向我提供非法字符列表吗?

xml illegal-characters

210
推荐指数
8
解决办法
58万
查看次数

解析EntityName时发生错误.第1行,位置844

我从以下代码块中得到以下异常.

解析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检索)包含一个特殊字符(&).这导致例外.我怎么解决它.对此的任何帮助都会很棒.

谢谢你,塞巴斯蒂安

c# xml

31
推荐指数
2
解决办法
6万
查看次数

从XML名称标记中删除无效字符 - RegEx C#

我有一个带有xml数据的字符串,我从Web服务中提取.数据很难看,并且在xml的Name标签中有一些无效的字符.例如,我可能会看到类似的东西:

<Author>Scott the Coder</Author><Address#>My address</Address#>
Run Code Online (Sandbox Code Playgroud)

地址名称字段中的#无效.我正在寻找一个正则表达式,它将从名称标签中删除所有无效字符但是将所有字符保留在xml的Value部分中.换句话说,我想使用RegEx仅从开头名称标签和结束名称标签中删除字符.其他一切都应该保持相同.

我还没有所有无效的字符,但这会让我开始:#{}&()

有可能做我想做的事吗?

c# regex xml

7
推荐指数
2
解决办法
1万
查看次数

XmlDocument.LoadXml()抛出ComException类型的异常

我正在尝试解析从此链接返回的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)

.net c# xml windows-runtime

2
推荐指数
1
解决办法
4967
查看次数

在将字符串添加到 XML 之前对其进行清理吗?

考虑以下代码:

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 方法是否足以满足此目的?

c# xml asp.net security

2
推荐指数
1
解决办法
3244
查看次数

标签 统计

xml ×5

c# ×4

regex ×2

.net ×1

asp.net ×1

html ×1

illegal-characters ×1

security ×1

windows-runtime ×1

xhtml ×1