簡體   English   中英

修剪帶修剪的字符串。結束

[英]Trim string with trim.End

我想用超過1個字符修剪字符串。 字符串:

<incident_response>
<msg_id>50889_360</msg_id>
<inquiry_id>INC000000087930</inquiry_id>
<response_dt>02.26.2013 14:49:12</response_dt>
<status>0</status>
<error></error>
</incident_response>

是的,我知道,這是一個XML文件。

string responseXML;
string inc_number = 
responseXML.Trim().Trim('<inquiry_id>').TrimEnd('</inquiry_id>');

我收到了CS1012錯誤,因為超過了一個字符。 我需要沒有任何其他字符的整個query_id(INC000000087930) 是否有另一種選擇來獲取號碼? 我不能使用xmlready或類似的東西,因為我從API模塊獲取XML作為字符串。

將XML作為字符串不會阻止您使用任何XML API。 最容易使用的是XLinq API。 它也應該在.NET 3.5中可用。

XDocument doc = XDocument.Parse(xml);
string inquiryId = (string)doc.Root.Element("inquiry_id");

如果您仍然想使用字符串,則可能會這樣

 responseXML.Substring(responseXML.IndexOf("<inquiry_id>"), responseXML.IndexOf("</inquiry_id>"))

但是,在您的情況下使用XML API是一種更干凈的方法。

如果只需要查詢_id,則可以使用正則表達式。

string your_xml = @"<incident_response>
<msg_id>50889_360</msg_id>
<inquiry_id>INC000000087930</inquiry_id>
<response_dt>02.26.2013 14:49:12</response_dt>
<status>0</status>
<error></error>
</incident_response>";


Regex re = new Regex(@"<inquiry_id>(?'inquiry_id'.*?)</inquiry_id>");
MatchCollection mc = re.Matches(your_xml);
foreach (Match m in mc)
{
    MessageBox.Show(m.Groups["inquiry_id"].Value);
}

C#支持stringVariable.Replace(string,string),它將用第二個替換所有出現的第一個字符串。

string responseXML;
string inc_number = 
    responseXML.Replace("<inquiry_id>", string.Empty).Replace("</inquiry_id>", string.Empty);

但是您仍然需要處理其余的XML。 我認為XML解析器更適合您的需求。

嘗試這個:

string str = "ggAAAff";
string prefix = "gg";
string suffix = "ff";
if (str.EndsWith(suffix)) str = str.Substring(0, str.Length - suffix.Length);
if (str.StartsWith(prefix)) str = str.Substring(prefix.Length);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM