我正在钻研XmlDocument构建的世界,并认为我会尝试重新构建(至少部分)由Microsoft的程序UISpy提供的桌面树。XmlElement InnerText属性
到目前为止,我可以抓住桌面的一个孩子并将其写入XML文档,然后抓住每个孩子并将其写入XML文档。
到目前为止的代码看起来像这样...
using System.Windows.Automation;
using System.Xml;
namespace MyTestApplication
{
internal class TestXmlStuff
{
public static void Main(string[] args)
{
XmlDocument xDocument = new XmlDocument();
AutomationElement rootElement = AutomationElement.RootElement;
TreeWalker treeWalker = TreeWalker.ContentViewWalker;
XmlNode rootXmlElement = xDocument.AppendChild(xDocument.CreateElement("Desktop"));
AutomationElement autoElement = rootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "GitHub"));
string name = autoElement.Current.Name;
while (autoElement != null)
{
string lct = autoElement.Current.LocalizedControlType.Replace(" ", "");
lct = (lct.Equals("") ? "Cusotm" : lct);
XmlElement temp = (XmlElement)rootXmlElement.AppendChild(xDocument.CreateElement(lct));
//temp.InnerText = lct;
string outerXML = temp.OuterXml;
rootXmlElement = temp;
autoElement = treeWalker.GetNextSibling(autoElement);
}
}
}
}
...和生成的XML文件...
现在,当我添加一行来改变每个XML元素的InnerText属性,如temp.InnerText = lct
我得到一个奇怪的格式的XML文件。
我从这个预期是什么,每个的innerText将是对同一行的XML元素的开始和结束标记,而是所有,但最后一个元素的innerText位于一个新行。
所以我的问题是,为什么呢?有什么我可以用我的XML元素做他们的InnerText出现在同一行吗?
XML是一种数据格式 - 不是显示格式。 IE如何选择显示XML文档(没有样式表),完全取决于它,显然这是它选择显示具有混合内容的XML元素的方式。 –
如果您想查看真实XML的样子,请在记事本或记事本++(或某些类似的文本编辑器,即使在Visual Studio中)中打开它。正如Damien_The_Unbeliever所说...... IE浏览器正在以它想要的方式显示XML。不是你总是期待的方式。 –