Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ParsePI() [2/2]

bool System.Xml.XmlTextReaderImpl.ParsePI ( StringBuilder piInDtdStringBuilder)
inlineprivate

Definition at line 5771 of file XmlTextReaderImpl.cs.

5772 {
5773 if (_parsingMode == ParsingMode.Full)
5774 {
5776 }
5777 int num = ParseName();
5778 string text = _nameTable.Add(_ps.chars, _ps.charPos, num - _ps.charPos);
5779 if (string.Equals(text, "xml", StringComparison.OrdinalIgnoreCase))
5780 {
5781 Throw(text.Equals("xml") ? System.SR.Xml_XmlDeclNotFirst : System.SR.Xml_InvalidPIName, text);
5782 }
5783 _ps.charPos = num;
5784 if (piInDtdStringBuilder == null)
5785 {
5786 if (!_ignorePIs && _parsingMode == ParsingMode.Full)
5787 {
5788 _curNode.SetNamedNode(XmlNodeType.ProcessingInstruction, text);
5789 }
5790 }
5791 else
5792 {
5793 piInDtdStringBuilder.Append(text);
5794 }
5795 char c = _ps.chars[_ps.charPos];
5797 {
5798 if (_ps.charsUsed - _ps.charPos < 2)
5799 {
5800 ReadData();
5801 }
5802 if (c != '?' || _ps.chars[_ps.charPos + 1] != '>')
5803 {
5805 }
5806 }
5808 {
5809 if (piInDtdStringBuilder == null)
5810 {
5811 if (_ignorePIs)
5812 {
5813 return false;
5814 }
5815 if (_parsingMode == ParsingMode.Full)
5816 {
5818 }
5819 }
5820 else
5821 {
5823 }
5824 }
5825 else
5826 {
5828 if (piInDtdStringBuilder == null)
5829 {
5830 if (_ignorePIs || _parsingMode != 0)
5831 {
5833 {
5834 }
5835 return false;
5836 }
5838 }
5839 else
5840 {
5842 }
5843 do
5844 {
5846 }
5849 if (piInDtdStringBuilder == null)
5850 {
5853 }
5854 }
5855 return true;
5856 }
static string Xml_BadNameChar
Definition SR.cs:44
static string Xml_XmlDeclNotFirst
Definition SR.cs:84
Definition SR.cs:7
override string ToString()
string Add(char[] array, int offset, int length)
void SetLineInfo(int lineNo, int linePos)
void SetNamedNode(XmlNodeType type, string localName)
readonly StringBuilder _stringBuilder
bool ParsePIValue(out int outStartPos, out int outEndPos)
int EatWhitespaces(StringBuilder sb)
void Throw(int pos, string res, string arg)

References System.Xml.XmlTextReaderImpl._curNode, System.Xml.XmlTextReaderImpl._ignorePIs, System.Xml.XmlTextReaderImpl._nameTable, System.Xml.XmlTextReaderImpl._parsingMode, System.Xml.XmlTextReaderImpl._ps, System.Xml.XmlTextReaderImpl._stringBuilder, System.Xml.XmlNameTable.Add(), System.Xml.XmlException.BuildCharExceptionArgs(), System.Xml.XmlTextReaderImpl.ParsingState.charPos, System.Xml.XmlTextReaderImpl.ParsingState.chars, System.Xml.XmlTextReaderImpl.ParsingState.charsUsed, System.Xml.Dictionary, System.Xml.XmlTextReaderImpl.EatWhitespaces(), System.Xml.XmlTextReaderImpl.ParsingState.LineNo, System.Xml.XmlTextReaderImpl.ParsingState.LinePos, System.Xml.XmlTextReaderImpl.ParseName(), System.Xml.XmlTextReaderImpl.ParsePIValue(), System.Xml.XmlTextReaderImpl.ReadData(), System.Xml.XmlTextReaderImpl.NodeData.SetLineInfo(), System.Xml.XmlTextReaderImpl.NodeData.SetNamedNode(), System.Xml.XmlTextReaderImpl.NodeData.SetValue(), System.text, System.Xml.XmlTextReaderImpl.Throw(), System.Text.StringBuilder.ToString(), System.SR.Xml_BadNameChar, System.SR.Xml_InvalidPIName, and System.SR.Xml_XmlDeclNotFirst.