XElement.Parse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Chargez une XElement chaîne contenant du code XML, en conservant éventuellement des espaces blancs et en conservant les informations de ligne.
Surcharges
| Nom | Description |
|---|---|
| Parse(String) |
Chargez une XElement chaîne contenant du code XML. |
| Parse(String, LoadOptions) |
Chargez une XElement chaîne contenant du code XML, en conservant éventuellement des espaces blancs et en conservant les informations de ligne. |
Parse(String)
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
Chargez une XElement chaîne contenant du code XML.
public:
static System::Xml::Linq::XElement ^ Parse(System::String ^ text);
public static System.Xml.Linq.XElement Parse(string text);
static member Parse : string -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String) As XElement
Paramètres
Retours
Rempli XElement à partir de la chaîne qui contient du code XML.
Exemples
L’exemple suivant crée une chaîne qui contient du code XML. Il analyse ensuite la chaîne en un XElement.
XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = <Root><Child></Child></Root>
Console.WriteLine(xmlTree)
Cet exemple produit la sortie suivante :
<Root>
<Child></Child>
</Root>
Remarques
Cette méthode ne conserve pas d’espace blanc. Si vous souhaitez conserver un espace blanc dans l’arborescence XML, utilisez la surcharge de la Parse méthode qui prend LoadOptions comme paramètre. Pour plus d’informations, consultez Conserver l’espace blanc lors du chargement ou de l’analyse xml et conserver l’espace blanc lors de la sérialisation.
La fonctionnalité de chargement de LINQ to XML est basée sur XmlReader. Par conséquent, vous pouvez intercepter toutes les exceptions levées par les XmlReader.Create méthodes de surcharge et les XmlReader méthodes qui lisent et analysent le document.
Voir aussi
S’applique à
Parse(String, LoadOptions)
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
- Source:
- XElement.cs
Chargez une XElement chaîne contenant du code XML, en conservant éventuellement des espaces blancs et en conservant les informations de ligne.
public:
static System::Xml::Linq::XElement ^ Parse(System::String ^ text, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Parse(string text, System.Xml.Linq.LoadOptions options);
static member Parse : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String, options As LoadOptions) As XElement
Paramètres
- options
- LoadOptions
Qui LoadOptions spécifie le comportement de l’espace blanc et indique s’il faut charger l’URI de base et les informations de ligne.
Retours
Rempli XElement à partir de la chaîne qui contient du code XML.
Exemples
L’exemple suivant analyse une chaîne de XElement deux façons différentes : préserver l’espace blanc et ne pas conserver l’espace blanc. Il utilise ensuite une requête pour déterminer le nombre de nœuds d’espace blanc dans l’arborescence XML résultante.
int whiteSpaceNodes;
XElement xmlTree1 = XElement.Parse("<Root> <Child> </Child> </Root>",
LoadOptions.None);
whiteSpaceNodes = xmlTree1
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}",
whiteSpaceNodes);
XElement xmlTree2 = XElement.Parse("<Root> <Child> </Child> </Root>",
LoadOptions.PreserveWhitespace);
whiteSpaceNodes = xmlTree2
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}",
whiteSpaceNodes);
Dim whiteSpaceNodes As Integer
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.None)
whiteSpaceNodes = xmlTree1 _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _
.Count()
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)
Dim xmlTree2 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.PreserveWhitespace)
whiteSpaceNodes = xmlTree2 _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _
.Count()
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)
Cet exemple produit la sortie suivante :
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
L’exemple suivant conserve les informations de ligne lors de l’analyse de la chaîne.
string markup =
@"<Root>
<Child>
<GrandChild/>
</Child>
</Root>";
XElement xRoot = XElement.Parse(markup, LoadOptions.SetLineInfo);
Console.WriteLine("{0}{1}{2}",
"Element Name".PadRight(20),
"Line".PadRight(5),
"Position");
Console.WriteLine("{0}{1}{2}",
"------------".PadRight(20),
"----".PadRight(5),
"--------");
foreach (XElement e in xRoot.DescendantsAndSelf())
Console.WriteLine("{0}{1}{2}",
("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),
((IXmlLineInfo)e).LinePosition);
Dim markup As String = _
"<Root>" & Environment.NewLine & _
" <Child>" & Environment.NewLine & _
" <GrandChild/>" & Environment.NewLine & _
" </Child>" & Environment.NewLine & _
"</Root>"
Dim xRoot As XElement = XElement.Parse(markup, LoadOptions.SetLineInfo)
Console.WriteLine("{0}{1}{2}", _
"Element Name".PadRight(20), _
"Line".PadRight(5), _
"Position")
Console.WriteLine("{0}{1}{2}", _
"------------".PadRight(20), _
"----".PadRight(5), _
"--------")
For Each e As XElement In xRoot.DescendantsAndSelf()
Console.WriteLine("{0}{1}{2}", _
("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _
DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _
DirectCast(e, IXmlLineInfo).LinePosition)
Next
Cet exemple produit la sortie suivante :
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Remarques
Si le code XML source est mis en retrait, la définition de l’indicateur PreserveWhitespace entraîne options la lecture de tous les espaces blancs dans le code XML source. Les nœuds de type XText sont créés pour un espace blanc significatif et non significatif.
Si le code XML source est mis en retrait, le fait de ne pas définir l’indicateur PreserveWhitespace dans options entraîne l’ignorer tous les espaces blancs non significatifs dans le code XML source. L’arborescence XML est créée sans nœuds de texte pour un espace blanc non significatif.
Si le code XML source n’est pas mis en retrait, la définition de l’indicateur PreserveWhitespace n’a options aucun effet. L’espace blanc significatif est toujours conservé, et il n’existe pas d’étendues d’espace blanc non significatif pouvant entraîner la création de nœuds de texte d’espace blanc plus importants.
Pour plus d’informations, consultez Conserver l’espace blanc lors du chargement ou de l’analyse xml et conserver l’espace blanc lors de la sérialisation.
Le paramètre SetBaseUri n’a aucun effet lors de l’analyse à partir d’un String.
Les XmlReader informations de ligne valides peuvent être fournies ou non. Si vous définissez SetLineInfo, les informations de ligne sont définies dans l’arborescence XML à partir des informations de ligne signalées par le XmlReaderfichier .
Une pénalité de performance est appliquée si vous définissez l’indicateur SetLineInfo .
Les informations de ligne sont exactes immédiatement après le chargement du document XML. Si vous modifiez l’arborescence XML après le chargement du document, les informations de ligne peuvent devenir sans signification.
La fonctionnalité de chargement de LINQ to XML est basée sur XmlReader. Par conséquent, vous pouvez intercepter toutes les exceptions levées par les XmlReader.Create méthodes de surcharge et les XmlReader méthodes qui lisent et analysent le document.