我的变量中的xml内容如下:
var xml = DownloadString(@"http://192.168.1.50:8983/solr/core-live/select?q=*%3A*&wt=xslt&tr=custom.xsl");
DownloadString是一个函数/方法
public static string DownloadString(string address)
{
string text;
using (var client = new WebClient())
{
text = client.DownloadString(address);
}
return text;
}
当我在xml变量上调试时,xml o / p看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<xml version="1.0">
<item>
<sku>12944</sku>
<title>test</title</item>
</xml>
我想从同一个变量中删除第二个节点(<xml version="1.0">
)和最后一个节点(</xml>
)。
然后使用以下内容在xml文件中保存内容:
System.IO.File.WriteAllText("test.xml", xml);
的问候, Jatin
答案 0 :(得分:3)
XDocument xdoc = XDocument.Parse(xml);
xdoc.Declaration = null;
return xdoc;
C# creating XML output file without <?xml version="1.0" encoding="utf-8"?>
答案 1 :(得分:1)
也许你需要在字符串
中使用replace方法 text = text.Replace("<xml version=\"1.0\">", "");
text = text.Replace("</xml>", "");
答案 2 :(得分:0)
string filePath = "C:\\file.xml";
List<string> strList = File.ReadAllLines(filePath).ToList();
StringBuilder sb = new StringBuilder();
int ctr = 0;
foreach (string str in strList)
{
ctr++;
if (ctr == 1 || ctr == strList.Count)
continue;
sb.Append(str);
}
答案 3 :(得分:0)
在我的情况下,除了@ user1040975的问题解决方案之外,我还必须将XmlWriterSettings的OmitXmlDeclaration属性设置为true,这样,将出现没有我创建的Encoding的新声明,最后代码如下所示:>
XmlWriterSettings settings = new XmlWriterSettings()
{
Encoding = new UTF8Encoding(false),
OmitXmlDeclaration = true
};
using (XmlWriter xmlWriter = XmlWriter.Create(convertedPath, settings))
{
XDocument xDoc = XDocument.Parse(innerXml);
xDoc.Declaration = new XDeclaration("1.0",null,null);
xDoc.Save(xmlWriter);
}
答案 4 :(得分:-2)
我在DownloadString()mathod上使用了string replace()函数。
我试过这段代码并且工作正常。
public static string DownloadString(string address)
{
string text;
using (var client = new WebClient())
{
text = client.DownloadString(address);
}
return text.Replace("<xml version=\"1.0\">", "").Replace("</xml>", "");
}