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 un XElement à partir d'une chaîne qui contient du code XML, en conservant éventuellement les espaces blancs et les informations de ligne.
Surcharges
Parse(String) |
Chargez un XElement à partir d'une chaîne qui contient le code XML. |
Parse(String, LoadOptions) |
Chargez un XElement à partir d'une chaîne qui contient du code XML, en conservant éventuellement les espaces blancs et les informations de ligne. |
Parse(String)
Chargez un XElement à partir d'une chaîne qui contient le 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
XElement rempli à partir de la chaîne qui contient le 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 des espaces blancs 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 de XML et conserver des espaces blancs 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)
Chargez un XElement à partir d'une chaîne qui contient du code XML, en conservant éventuellement les espaces blancs et 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
LoadOptions qui spécifie le comportement pour les espaces blancs et détermine s'il faut charger l'URI de base et les informations de ligne.
Retours
XElement rempli à partir de la chaîne qui contient le 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 au fur et à mesure 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 les espaces blancs significatifs et non significatifs.
Si le code XML source est mis en retrait, le fait de ne pas définir l’indicateur PreserveWhitespace entraîne options
l’ignorer dans l’espace blanc non significatif dans le code XML source. L’arborescence XML est créée sans aucun nœud 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’espaces blancs insignifiants susceptibles de provoquer la création de nœuds de texte d’espace blanc supplémentaires.
Pour plus d’informations, consultez Conserver l’espace blanc lors du chargement ou de l’analyse de XML et conserver des espaces blancs lors de la sérialisation.
Le paramètre SetBaseUri n’aura aucun effet lors de l’analyse à partir d’un String.
Les XmlReader informations de ligne peuvent être valides 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 XmlReader.
Il existe une pénalité de performances 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.