Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中从XML中删除预处理指令#_C#_Xml - Fatal编程技术网

C# 在c中从XML中删除预处理指令#

C# 在c中从XML中删除预处理指令#,c#,xml,C#,Xml,如何以更环保的方式从XML中删除预处理指令?假设我把这个xml放在一个字符串变量(它是一个类的属性)中,我想把它作为另一个xml节点的值来写,我如何以更简洁的方式实现它 <?xml version="1.0" encoding="utf-8" ?> <bookstore> <book genre="autobiography"> <title>The Autobiography of Benjamin Franklin</ti

如何以更环保的方式从XML中删除预处理指令?假设我把这个xml放在一个
字符串
变量(它是一个类的属性)中,我想把它作为另一个xml节点的值来写,我如何以更简洁的方式实现它

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore> 
  <book genre="autobiography">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
</bookstore>

富兰克林自传
本杰明
富兰克林
8.99
自信的人
赫尔曼
梅尔维尔
11.99

谢谢你的帮助

如果可以将其加载到XmlDocument中:FirstChild返回
节点,而
NextSibling
返回其余节点

XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode node = doc.FirstChild.NextSibling;
编辑:您的xml看起来很像XPathNavigator.Select上的示例。你试过用它吗

Edit2:可以使用以下命令获取顶级元素的名称:

string topLevelNode = doc.DocumentElement.Name;

请尝试下面的代码。它将首先将文本加载到
XmlDocument
对象

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlAsText);
然后,您可以使用以下方法获取
OutherXml

xmlDoc.DocumentElement.OuterXml;

我不能确定xml中只有一条预处理指令,可能不止一条,也可能根本没有。那么我该如何处理这个场景呢?你会一直这样吗?或者可能会有所不同?是的,也可能会有所不同。它就像不同的xml即将出现一样。实际上,我只是将其作为一个示例发布,我的xml将有所不同。我想知道我应该如何处理这个问题,并编辑答案以包括获取顶级元素名称的方法(在您的示例中为bookstore)。然后可以将其与XPathNavigator.Select一起使用。