Tor*_*mod 1 c# xml linq-to-xml
我有一个字符串,该字符串以xml元素开头,然后在元素结束后以常规文本继续。
像这样:
<SomeElement SomeAtt="SomeValue"><SomeChild/></SomeElement> More random text.
Run Code Online (Sandbox Code Playgroud)
我想将第一部分解析为XElement,然后将以下文本分离为字符串变量。我曾考虑过仅计算尖括号,但是有合法的XML会让我失望。我更喜欢使用开箱即用的解析器。我尝试使用XmlReader和XElement.Parse方法。我希望它们在元素读取后停止,而不是因为Xml元素后出现意外文本而引发异常。到目前为止,我还没做到。XmlReader有一个ReadSubtree方法,但是我无法使它工作。
有任何想法吗?
编辑
一种可能的简单方法可能是将整个字符串包装在根节点中,以使其成为有效的XML并可由XElement或解析XDocument:
var xml = @"<SomeElement SomeAtt=""SomeValue""><SomeChild/></SomeElement> More random text.";
xml = string.Format("<root>{0}</root>", xml);
var doc = XDocument.Parse(xml);
var element = doc.Root.Elements().First();
var trailingString = doc.Root.LastNode;
Console.WriteLine(element.ToString());
Console.WriteLine();
Console.WriteLine(trailingString.ToString());
Run Code Online (Sandbox Code Playgroud)
控制台输出:
<SomeElement SomeAtt="SomeValue">
<SomeChild />
</SomeElement>
More random text.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |