所以我从数据库中获取值,并根据我们编码XML文件。但是我们从数据库中获取的数据是“12454测试”。但我只想要数字和编码。
Dim oDoc As New FormDB
Dim dr As SqlDataReader = oDoc.GetSingleDocument(SB_ID)
While dr.Read
Dim outdoc As String = "<ns0:TEST xmlns:ns0='http://Prototype.Test'>" & _
"<CostCode>" & Encode(dr.Item("COSTCODE")) & "</CostCode>" & _
"</ns0:TEST >"
那么我如何只编码costCode标签中的数字“21334”,不想编码“144343测试”。
由于
答案 0 :(得分:0)
您可以使用String.Split()内联。例如,如果你有类似的东西:
Dim myStr = "123456 SomeText"
你可以在另一个字符串中使用它来获取类似
之类的数字Dim newStr = "<ProductID>" & myStr.Split(" "c)(0) & "</ProductID>"
为您提供结果<ProductID>123456</ProductID>
,其中使用1代替0会给您<ProductID>SomeText</ProductID>
编辑:
使用Option Strict Off,编译器不会警告您使用dr.Item("COSTCODE")
作为对象而不是字符串。我们可以通过使用.ToString方法来解决这个问题,以便我们访问Split扩展方法。
Dim oDoc As New FormDB
Dim dr As SqlDataReader = oDoc.GetSingleDocument(SB_ID)
While dr.Read
Dim outdoc As String = "<ns0:TEST xmlns:ns0='http://Prototype.Test'>" & _
"<CostCode>" & dr.Item("COSTCODE").ToString.Split(" "c)(0) & "</CostCode>" & _
"</ns0:TEST >"
同样,这段代码期望读者(dr)引入一串文本,例如“12454 testing”,并且只接受12454并将其注入你的outdoc字符串。读者读入“12454测试”时的输出将是:
<ns0:TEST xmlns:ns0='http://Prototype.Test'><CostCode>12454</CostCode></ns0:TEST >
这是我对正在阅读的内容的理解。