мне кажется, синтаксическому анализатору XML не нравятся xmlns файла, попробуйте заменить это:
<DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
на
<DirectedGraph Title="DrivingTest" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
теперь ваш анализатор xml сможет читатьфайл в вашем коде, который вам нужен для управления вашей переменной text
с string.Replace()
, например
. Я проверил следующий XML:
<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph Title="DrivingTest" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Nodes>
<Node Id="Driver" Label="Driver" Category="Person" DrivingAge="18"/>
<Node Id="Car" Label="Car" Category="Automobile" />
<Node Id="Truck" Label="Truck" Category="Automobile" />
<Node Id="Passenger" Category="Person" />
</Nodes>
<Links>
<Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
<Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
</Links>
<Categories>
<Category Id="Person" Background="Orange" />
<Category Id="Automobile" Background="Yellow"/>
<Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
<Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
</Categories>
<Properties>
<Property Id="DrivingAge" Label="Driving Age" DataType="System.Int32" />
</Properties>
</DirectedGraph>
С этим кодом:
void ReadXML()
{
XDocument doc = XDocument.Load("tmp.xml");
var root = doc.Elements("DirectedGraph");
var elements = root.Elements("Nodes").Elements("Node");
foreach (var item in elements)
{
var name = item.Attribute("Id").Value;
}
}
Я могу представить, что вы не хотите манипулировать файлом как его стандартным форматом, поэтому просто передайте переменную text
в свой код перед передачей в синтаксический анализатор