我正在嘗試通過 xml 決議并獲取一些值并嘗試了多種方法,但我無法獲取這些值。
這是我迄今為止嘗試過的
string fileName = @"C:\Users\one\OneDrive\Desktop\PP\SnippetWithImage.idms";
string xmlString = System.IO.File.ReadAllText(fileName);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNodeList spreadNodes = xmlDoc.GetElementsByTagName("spread");
foreach (XmlNode spreadNode in spreadNodes)
{
var linkNodes = spreadNode.SelectNodes("//rectangle/image/link");
foreach (XmlNode linkNode in linkNodes)
{
Console.WriteLine("path : " linkNode.SelectSingleNode("LinkResourceURI").InnerText);
}
}
這里 spreadNodes 計數始終為 0。
我也嘗試過使用 XElements 并使用 Decendents,但結果相同。
這是xml結構 https://codebeautify.org/xmlviewer/y22db1f26
我正在加載的檔案是 InDesign Snippet 檔案。我正在嘗試從鏈接獲取 linkResourceURI 屬性值,鏈接是影像的子影像,它是矩形的子影像,矩形是傳播的子影像。
uj5u.com熱心網友回復:
一些快速除錯顯示它spreadNodes是空的,首先。最明顯的原因是元素名稱Spread不是spread,如果我們進行此更改,我們會看到spreadNodes有一個元素。
接下來,很明顯spreadNode.SelectNodes("//rectangle/image/link")沒有回傳任何東西。同樣,這可能是大寫:將其更改為//Rectangle/Image/Link,我們得到一個NullReferenceException. 進步,至少。
我們得到那個例外是因為linkNode.SelectSingleNode("LinkResourceURI")它回傳 null。事實證明,這是因為LinkResourceURI是一個屬性,而您正在尋找一個元素。將其更改為linkNode.Attributes["LinkResourceURI"].InnerText,一切都按預期作業。
XmlNodeList spreadNodes = xmlDoc.GetElementsByTagName("Spread");
foreach (XmlNode spreadNode in spreadNodes)
{
var linkNodes = spreadNode.SelectNodes("//Rectangle/Image/Link");
foreach (XmlNode linkNode in linkNodes)
{
Console.WriteLine("path : " linkNode.Attributes["LinkResourceURI"].InnerText);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467144.html
