簡體   English   中英

讀取xml文件時出現問題

[英]Problems reading xml file

我在閱讀XML時遇到問題,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<connections xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<connection id="1" odcFile="C:\Users\andr\Documents\My Data Sources\ELITE_MSSQLSERVER2012 PSO Reports.odc" keepAlive="1" name="ELITE_MSSQLSERVER2012 PSO Reports" type="5" refreshedVersion="5" background="1">
<dbPr connection="Provider=MSOLAP.5;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=PSO;Data Source=ELITE\MSSQLSERVER2012;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error" command="Reports" commandType="1"/>
<olapPr sendLocale="1" rowDrillCount="1000"/>
</connection>
</connections>

(實際上是* .xlsx包中的connection.xml文件)。 我正在嘗試借助XDocument進行閱讀。 我需要更改“ odcFile”屬性。 問題在於它將整個內容作為單個元素讀取而沒有子元素。 為什么這樣? XML看起來很正常。 也許還有其他解決方法可以做到這一點?

如果可以訪問實際的xml文件,請嘗試改用System.Xml.Document。 不知道您的意思是“它實際上是* .xlsx包中的connection.xml文件”:

using System.Xml

XmlDocument dom = new XmlDocument();
XmlNone root;

dom.Load(fullpath);

root = dom.DocumentElement;

查詢此文檔時,必須使用正確的XNamespace實例。 這是因為您的<connections>標記將默認名稱空間設置為"http://schemas.openxmlformats.org/spreadsheetml/2006/main"

var xDoc = XDocument.Load("Input.txt");
var ns = XNamespace.Get("http://schemas.openxmlformats.org/spreadsheetml/2006/main");

var odcFile = xDoc.Root.Elements(ns + "connection")
                       .FirstOrDefault(x => (int)x.Attribute("id") == 1)
                       .Attribute("odcFile");

odcFile.Value = "newOdcValue";

xDoc.Save("Input.txt");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM