小编use*_*272的帖子

如何使用HtmlAgilityPack将<br>标签替换为<br/>标签?

很奇怪!当我加载和更换 使用空字符串

 var document = new HtmlDocument();
    document.LoadHtml(data); 
    document.DocumentNode.OuterHtml.Replace("<tbody>", "");
Run Code Online (Sandbox Code Playgroud)

这工作正常,<tbody>将被删除.

当我尝试使用替换<br><br/>,

document.DocumentNode.OuterHtml.Replace("<br>", "<br/>");
Run Code Online (Sandbox Code Playgroud)

这是行不通的 :(

也尝试过,

 var brTags = document.DocumentNode.SelectNodes("//br");
            if (brTags != null)
            {
                foreach (HtmlNode brTag in brTags)
                {
                    brTag.OuterHtml = "<br/>";
                    // brTag.Name= "br/"; - > Also this one :(
                }
            }
Run Code Online (Sandbox Code Playgroud)

HTMLAgilityPack的replace()函数不适用于自闭标签?

c# html-agility-pack

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

使用HTMLAgilityPack将节点附加到内部文本

问题:我需要删除所有<p>标记的样式属性,如果它包含font-weight:bold属性,则添加<b>到它.

例如:如果html是 <p style="margin-top:0pt; margin-bottom:0pt;font-weight:bold; font-weight:bold;font-size:10pt; font-family:ARIAL" align="center"> SOME TEXT HERE</p>.

输出应该是: <p align="center"> <b>SOME TEXT HERE</b></p>

我正在使用以下代码,

var htmlDocument = new HtmlDocument();
            htmlDocument.LoadHtml(htmlPage);
            foreach (var htmlTag in attributetags)
            {
                var Nodes = htmlDocument.DocumentNode.SelectNodes("//p");
                if (Nodes != null)
                {
                    bool flag = false;
                    foreach (var Node in Nodes)
                    {
                        if (Node.Attributes["style"] != null)
                        {
                            if (Node.Attributes["style"].Value.Contains("font-weight:bold"))
                            {                                    
                               var bnode = HtmlNode.CreateNode("<b>");
                               Node.PrependChild(bnode);
                            }
                            Node.Attributes.Remove("style");                            
                        }
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

我也尝试过 Node.InsertAfter(bcnode, Node), Node.InsertBefor(bnode, …

c# html-agility-pack

5
推荐指数
1
解决办法
3279
查看次数

HTMLAgilityPack - 删除节点而不剥离内部文本

我的HTML内容是

<a href="#asdf">asdf</a>
<H5 align="left"><A href="#d570525d497.htm#toc">Table 
of Contents</A><br></H5>
Run Code Online (Sandbox Code Playgroud)

我正在使用HTML Agility Pack来加载html.我想找到<a>节点并删除节点而不删除其内部文本,如下所述

asdf
<H5 align="left">Table 
of Contents<br></H5>
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码,

var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(htmlPage);
var Nodes = htmlDocument.DocumentNode.SelectNodes("//a");
foreach (var Node in Nodes)
{
    Node.InnerText.Trim();
}
Run Code Online (Sandbox Code Playgroud)

它不起作用.代码出了什么问题?

c# html-agility-pack

4
推荐指数
1
解决办法
4066
查看次数

如何使用LINQ删除没有子节点的Xelement?

这是我的XML,

<A>
    <B  id="ABC">
      <C name="A" />
      <C name="B" />     
    </B>
    <X>
     <B id="ZYZ">
      <C name="A" />
      <C name="B" />
     </B>
    </X>
</A>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码删除<X>节点而不删除其下降/子节点,

XDocument doc = XDocument.Load("D:\\parsedXml.xml");
doc.Descendants("A").Descendants("X").Remove();
Run Code Online (Sandbox Code Playgroud)

但正在删除整个<X>块.

预期产量:

<A>
    <B  id="ABC">
      <C name="A" />
      <C name="B" />     
    </B>
     <B id="ZYZ">
      <C name="A" />
      <C name="B" />
     </B>
</A>
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-xml

3
推荐指数
1
解决办法
2887
查看次数

如何从XDocument中选择具有特定属性值的特定节点?

这是我的 xml,

<root>
 <A>
    <B  id="ABC">one
    </B>
    <B id="ZYZ">two
    </B>
    <B  id="QWE">three
    </B>
    <B>four
    </B>
  </A>
</root>
Run Code Online (Sandbox Code Playgroud)

使用以下C#代码仅获取节点<B id="QWE">three</B>

var x = xdoc.Descendants("B").Where(ele => ele.Attribute("id").Value.Equals("QWE"));
Run Code Online (Sandbox Code Playgroud)

但变量x始终为空,任何帮助表示赞赏!

c# xml

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

如何在XElement属性上使用LINQ Group

var seriesonfo 包含以下XML,

    <series id="S000002334Member">
      <class id="C000006118Member" />
    </series>
    <series id="S000002334Member">
      <class id="C000006119Member" />
    </series>
Run Code Online (Sandbox Code Playgroud)

C#Code to group"series"节点基于"id"属性:

var result = new XElement("SC",
new[]
     {
       new XElement("seriesAndClassInfo", seriesonfo.GroupBy(a => a.Element("series").Attribute("id")))
     }
Run Code Online (Sandbox Code Playgroud)

分组后的预期XML:

   <series id="S000002334Member">
      <class id="C000006118Member" />
      <class id="C000006119Member" />
    </series>
Run Code Online (Sandbox Code Playgroud)

小组不工作.

c# xml linq

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

获取特定节点的 xml 属性值

<root>
 <A testId ="test">
    <B  id="ABC">one
    </B>
    <B id="ZYZ">two
    </B>
    <B  id="QWE">three
    </B>
    <B>four
    </B>
  </A>
</root>
Run Code Online (Sandbox Code Playgroud)

需要提取testId节点的属性值。我正在<A>使用以下c#代码,但是它抛出空异常。

doc.XPathSelectElement("//A/@testId")
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

c# xml

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

标签 统计

c# ×7

html-agility-pack ×3

xml ×3

linq ×2

linq-to-xml ×1