Linq to XML未获取包含html标记的节点的内容
我有一个XML文件,我正试图用Linq解析为XML。其中一个节点包含一点HTML,我无法检索 XML类似于:Linq to XML未获取包含html标记的节点的内容,xml,linq-to-xml,Xml,Linq To Xml,我有一个XML文件,我正试图用Linq解析为XML。其中一个节点包含一点HTML,我无法检索 XML类似于: <?xml version="1.0" encoding="ISO-8859-1"?> <root> <image><img src="/Images/m1cznk4a6fh7.jpg" /></image> <contentType>Banner</contentType> </root>
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<image><img src="/Images/m1cznk4a6fh7.jpg" /></image>
<contentType>Banner</contentType>
</root>
有什么想法吗?如果要在XML元素中存储HTML,它应该在
注释中,这样LINQ2XML就知道不要将其视为额外的XML标记
<image><![CDATA[<img src="Images/abc.jpg />]]></image>
如果内存可用,则在不使用CDATA注释包装的情况下,您不必执行任何特殊操作来提取值,但您可能需要调用
value
以外的属性。我不太记得了。那是因为图像下没有嵌套的值
,只有另一个元素(img
)。您需要执行以下操作:
XElement imgElement = document.Descendants("image").SingleOrDefault().FirstNode;
然后访问Value
属性以获取src
。否则,如果要以纯文本形式查找img
标记,则需要将其作为CDATA部分保存在XML文档中,例如
<image><![CDATA[<img src="/Images/m1cznk4a6fh7.jpg" />]]></image>
.Value
表示标记中的任何文本和任何子标记,但您没有任何子标记。当您解析它时,来检索所需的文本。Thx对于答案也是非常有用的。但丁:没问题,不过我对你接受的答案做了评论。您说过您需要image
标记中包含完整的HTML内容,这将要求您使用CDATA部分。因此,我会认为我/内森的答案是正确的。我的错是,我没有正确解释。但他是第一个,他回答了我的问题。问题并不是说他们在寻找标签的src
部分,他们只是说标签中的HTML。需要一个CDATA区域。哇,这里充满了愤怒。詹姆斯和内森,你们没事吧?他没有说他有能力更改XML的格式,只是说他想阅读内容(.Value
)。为了像使用Linq to XML一样使用Linq to XML,他需要获取src
属性的值。@Otaku.没有愤怒,更混乱:)@James:他的代码最后一行是注释“\\not get the content,而如果我指定.subjections(“contentType”),它就可以工作”这表示他正在查找img
标记的值。在这种情况下,只有一个值,即src
@Otaku属性的值,他有一个image
标记和一个img
标记。我想通过他的问题,他希望完整的
数据是图像的值。他没有明确说明他在寻找src
.Tbh,这并不正确。在某种程度上是这样的,但我尝试使用xml原样来实现,因此其他答案比您的答案更准确。也在你的面前;)不过还是谢谢你。
<image><![CDATA[<img src="/Images/m1cznk4a6fh7.jpg" />]]></image>
<image>
<img>/Images/m1cznk4a6fh7.jpg
</img>
</image>