XML birden nitelikleri aracılığıyla bul

oy
7

Ben XML birden çok özellik aramak çalışıyorum:

<APIS>
  <API Key=00001>
    <field Username=username1 UserPassword=password1 FileName=Filename1.xml/>
    <field Username=username2 UserPassword=password2 FileName=Filename2.xml/>
    <field Username=username3 UserPassword=password3 FileName=Filename3.xml/>
  </API>
</APIS>

Ben alanında Kullanıcı adı VE userPassword değerleri benim Veri kümesi değerlerle karşılaştırarak kulüpler hem nelerdir olmadığını kontrol etmek gerekiyor, Flags kullanarak ve kırılma kendi mantığı yazmadan çoklu özelliklerini (VE koşulu) kontrol edebilirsiniz bir yolu var döngüleri üzerinden.

öyle XMLDoc bir yerleşik işlevi var mı? Herhangi bir yardım mutluluk duyacağız!

Oluştur 09/12/2008 saat 20:04
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
25

Eğer, aşağıdaki XPath ifadesi gerekir sağlanan XML snippet'te istediklerini aramak için:

/APIS/API/field[@Username='username1' and @UserPassword='password1']

ya da değil yapmazlarsa - kullanıcı adı ve şifre maçı bu, bir şeyler dönecekti ya.

Of XPath ifadesi sadece bir dizedir couse - örneğin, bir form alanına girilen değerlerle dinamik olarak inşa edebilirsiniz.

Eğer içinde bulunduğunuz hangi dilde / çevre söylersem, burada yayınlanan kod örnekleri olasılıkla daha spesifik alacak.

Bu C # bunu yapmak için bir yoldur (VB.NET benzerdir):

// make sure the following line is included in your class
using System.Xml;

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("your XML string or file");

string xpath = "/APIS/API/field[@Username='{0}' and @UserPassword='{1}']";
string username = "username1";
string password = "password1";

xpath = String.Format(xpath, username, password);
XmlNode userNode = xmldoc.SelectSingleNode(xpath);

if (userNode != null)
{
  // found something with given user name and password
}
else
{
  // username or password incorrect
}

Ne kullanıcı adları ne de şifreleri tek tırnak içerebilir ya da yukarıdaki örnekte başarısız olacağını unutmayın. İşte bu özelliğinden ilgili bazı bilgiler verilmiştir .

Microsoft'tan bir Nasıl Yapılır de mevcuttur vardır: Visual C # .NET XPath sorguları yürütme System.Xml.XmlDocument Class kullanın: NASIL

Cevap 09/12/2008 saat 20:32
kaynak kullanıcı

oy
2

XML aranıyor nedir XPath için yapıldı. Sen Kullandığınız dili belirtmek yoktu, ama burada bir makale Java XPath kullanarak işleme XML ve burada biri C # kullanarak.

Cevap 09/12/2008 saat 20:16
kaynak kullanıcı

oy
1

Bu hakkında bir SSS XPath ifadeleri .

(Ki değerlendirildi tipi boolean) bir veya daha fazla XPath ifadeleri birlikte kullanılarak bağlanabilir bağlaçlar "ve" ve "ya da" ve XPath fonksiyonu kullanılarak () değil .

Bunların isimleri küçük harfle bütün olduğunu unutmayın . XPath harfe duyarlı ve (örneğin, "AND" gibi) bu isimlerin bir başka harf mantıksal operatörlerin adı olarak tanınmaz olduğunu.

Yani, bu özel durumda, aranan XPath ifadesi şöyle bir şey olacaktır:

/*/*/field[@Username = your-ds-username and @UserPassword = your-ds-UserPassword]

nerede your-ds-usernameve your-ds-UserPasswordsen veri kümesi kullanmak istediğiniz ilgili değerleriyle değiştirilir edilmelidir.

Cevap 10/12/2008 saat 03:37
kaynak kullanıcı

oy
0

XML etiketi durumunda birden nitelikler aramak için, aşağıdaki XPATH / API'LARI / API / alan [@ kullanıcı adı = 'kullaniciadi1'] [@ userPassword = 'password1'] kullanabilirsiniz

Cevap 04/11/2014 saat 12:23
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more